Avatar billede Morten Professor
23. november 2021 - 11:41 Der er 6 kommentarer og
1 løsning

SimpelXML kalder fra it xmlfeed

Hej
Håber der er en eller flere som har nogle ideer til hvad det kan være, der gør at jeg ikke udprinter mine values, jeg har i min array fra xml filen som jeg fint kan få array ud af. Men kan simpelthen ikke få den til at printe noget ud.
Se kode eksempeler.

$xml = simplexml_load_file('https://jeg tester på et feed der virker . xml');

//print_r($xml);//Det virker får array ud med alt fra xml filen

echo $xml->items->item['brand']; // Siger >>>> Notice: Trying to access array offset on value of type null
   
    echo $xml['brand']; // Echoer den ingen ting

Har prøvet med
foreach($xml as $data) {
        echo $data['brand'];
    }
der kommer heller ikke noget bare blank

Med venlig hilsen
Morten
Avatar billede Morten Professor
23. november 2021 - 12:03 #1
<items>
<item>
<brand>Garcia</brand>
<category>Sweat</category>
<color>Navy</color>
<ean>8713215345416</ean>
<gender>M</gender>
<item_group_id>GJ_J13723-292-M1021T</item_group_id>
<oldprice>293</oldprice>
<pictureurl>https://teenstyle.dk/wp-content/uploads/2021/10/GJ_J13723-292-M1021T.jpg</pictureurl>
<price>293</price>
<productdescription>Garcia sweat pants, darkmoon</productdescription>
<productid>GJ_J13723-292-M1021T_152</productid>
<productname>Garcia sweat pants, darkmoon</productname>
<producturl>https://umame.dk/p/garcia-sweat-pants-darkmoon-2/?channable=02f601736b7500474a5f4a31333732332d3239322d4d31303231545f313532c7&attribute_pa_hoejde=152&attribute_pa_leverandoer-stoerrelse=12aar</producturl>
<shipping>29</shipping>
<shipping_time>1-2 hverdage</shipping_time>
<size>12år</size>
<stockstatus>in stock</stockstatus>
</item>
</items>
Avatar billede Morten Professor
23. november 2021 - 12:04 #2
Glemte lige at ligge et stykke ind hvor i kan se stien
Avatar billede Henrik Hansen Forsker
23. november 2021 - 14:59 #4
Din XML er ikke korrekt formateret. URL'en indeholder &
<, > og & skal "encode's" eller være inde i <![CDATA[    ]]>
https://en.wikipedia.org/wiki/CDATA

+

Vis Brand i hver <item> :
foreach($xml->item as $data) {
    echo $item->brand;
}

Hvis det er dig, som leverer xml'en, bør den have en header:
<?xml version="1.0" encoding="UTF-8" ?>
(hvis xml'en er leveret i UTF-8)

Læs mere om XML formatering her: https://www.w3.org/TR/REC-xml/
Avatar billede Morten Professor
23. november 2021 - 15:41 #5
Det var en lille ændring i foreach der gjorde forskellen
foreach ($xml->children() as $children) {
    echo $children->brand;
}

Tak for i var der for at hjælpe :-)
Er så glad for der er nogen der har lyst til at hjælpe mig, når jeg problemer med koden :-)

Med venlig hilsen
Morten
Avatar billede erikjacobsen Ekspert
23. november 2021 - 17:10 #6
Nå ja, det der xml-bibliotek i PHP er lidt ... øh ... simpelt. En anden måde at løbe børnene igennem på:

$c = count($xml->item);
for($i=0;$i<$c;$i++) {
        print($xml->item[$i]->brand."\n");
}
Avatar billede Morten Professor
23. november 2021 - 19:45 #7
Takker så er der nogle flere måder ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester