Lezen van een feed met namespace (althans, ergens gelezen dat dit zo heet)
Ik verwerk datafeeds.
De feed waar het nu om gaat bevat o.a.:

<productHeader>
<totalHits>781</totalHits>
</productHeader>
<products>
<product groupingId="sku1119401" language="nl">
<ns2:name>Apple Magsafe-lichtnetadapter 60w</ns2:name>
<ns2:description>Dit is de originele lichtnetadapter van Apple.</ns2:description>
<ns2:productImage>https://assets.mmsrg.com/isr/166325/c1/-/ASSET_MMS_96100452/fee_786_587_png</ns2:productImage>
<ns2:categories>
<ns2:category name="Originele Apple Mac-accessoires"/>
<ns2:category name="Computer" id="14" tdCategoryName="Computer hardware and software"/>
<ns2:category name="Computer- & laptop-accessoires"/>
</ns2:categories>
<ns2:fields>
<ns2:field name="advertiser_id">1119401</ns2:field>
<ns2:field name="category_path">Computer</ns2:field>
</ns2:fields>
<ns2:model>Apple Magsafe-lichtnetadapter 60w</ns2:model>
<ns2:brand>Apple</ns2:brand>
<ns2:shortDescription>Dit is de originele lichtnetadapter van Apple, geschikt voor MacBook en 13" Pro.</ns2:shortDescription>
<ns2:ean>0885909377817</ns2:ean>
<ns2:sku>1119401</ns2:sku>
<offers>
<offer id="f25125d2-4215-4510-b771-3c933f782134" sourceProductId="1119401" modifiedDate="1667919904832" dateFormat="epoch">
<ns2:feedId>23777</ns2:feedId>
<ns2:productUrl>https://pf.tradedoubler.com/click?a(1985635)p(262336)product(23777-1119401)ttid(3)url(https%3A%2F%2Fwww.mediamarkt.nl%2Fcatentry%2F1119401%3Futm_source%3Dtradedoubler%26utm_medium%3Daff-comparison%26utm_term%3D1119401)</ns2:productUrl>
<ns2:programName>MediaMarkt</ns2:programName>
<ns2:programLogo>http://hst.tradedoubler.com/file/262336/logos/mm_logo_200x70.gif</ns2:programLogo>
<priceHistory>
<ns2:price currency="EUR" date="1667919904832" dateFormat="epoch">89.99</ns2:price>
</priceHistory>
<ns2:inStock>263</ns2:inStock>
<ns2:availability>in stock</ns2:availability>
<ns2:deliveryTime>Voor 12:30 besteld, vandaag in huis</ns2:deliveryTime>
<ns2:shippingCost>0.00</ns2:shippingCost>
</offer>
</offers>
</product>


Hoe kan ik nu de diverse zaken zoals name en model e.d. binnen lezen.
Als die ns2 er niet zou staan (zoals in de overige datafeeds die ik verwerk) dan vul ik $title als volgt:

$titel=$xml->product[0]->name;


Hoe gaat dit nu?

$titel=$xml->product[0]->ns2:name;

werkt niet en aangezien ik niet zo thuis ben in PHP weet ik niet hoe ik dit wel kan doen.
Ik heb nu het volgende, maar krijg daar een foutmelding op:

$ns2Fields = $xml->product[0]->children('ns2', true);

echo "name: " . (string) $ns2Fields->name . "\n";
echo "description: " . (string) $ns2Fields->description . "\n";
echo "shippingCost: " . (string) $ns2Fields->shippingCosts . "\n";


Nogmaals, ik ben niet zo goed thuis in PHP maar heb door zelfstudie wel enkele websites gemaakt m.b.v. PHP.
Ik dacht n.a.v. die verwijzing dat het zo goed zou moeten zijn.
Ik krijg nu: aantal_ddaff = 1PHP Fatal error: Call to a member function children() on a non-object in /home/younk/domains/alledagdeals.nl/public_html/admin/cronjobs/tradedoubler-velden.php on line 23
'line 23' is de 1e regel met inhoud: $ns2Fields = $xml->product[0]->children('ns2', true);
Zou je code-tags willen gebruiken?
Alvast bedankt.
bedoel je met kleuren?
Ik ga kopiëren en plakken en dan komt het zoals ik hierboven heb neer gezet.
Ja, gebruik daarvoor aub de code-tags.
Kan ik dan een bestand (met een screenshot) invoegen, want als ik knip en plak dan komt het hier zonder opmaak.
Of is daar een andere manier voor?
Zie deze pagina uit de F.A.Q.
Ik heb dit nu voor je gedaan, maar graag voortaan zelf hieraan denken. Bedankt!

Geen idee wat je nu veranderd hebt.
Ik heb overigens nog geen antwoord op mijn vraag en ook nog steeds geen oplossing gevonden.

Reageren