attributes in XML uitlezen..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ki ma

ki ma

30/11/2013 22:18:37
Quote Anchor link
XML opbouw:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="UTF-8"?>

<feed>
<data>
<record>
<column name="url">
<![CDATA[http://eenurl.nl]]>
</column>
column name="title">
<![CDATA[hier dan de titel]]>
</column>
column name="description">
<![CDATA[eenbeetje tekst.]]>
</column>

<column name="image">
<![CDATA[http://....]]>
</column>
<column name="price">
<![CDATA[50]]>
</column>
<column name="category">
<![CDATA[nederland]]>
</column>
</record>
<record>
<column name="url">
<![CDATA[http://2eenurl.nl]]>
</column>
column name="title">
<![CDATA[2hier dan de titel]]>
</column>
column name="description">
<![CDATA[2eenbeetje tekst.]]>
</column>
<column name="image">
<![CDATA[2http://....]]>
</column>
<column name="category">
<![CDATA[nederland]]>
</column>
</record>
</data>
</feed>


En dan nu het uitlezen..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$xml
= simplexml_load_file('http://www.eendomein.nl/bestandvande.xml');
foreach ($xml->data->record as $product_main) {
    foreach ($product_main->column->attributes()->name as $product) {
        $feed['beschrijving'] = mysql_real_escape_string($product->description);
    }

    echo $feed['beschrijving'];
unset($feed) ;
}

?>


Maar dit werkt niet niet.. het gaat fout bij 'attributes()' weet iemand hoe dit wel werkt met 'attributes'?
Ik hoor het graag.
Gewijzigd op 30/11/2013 22:21:06 door Ki ma
 
PHP hulp

PHP hulp

24/11/2024 05:16:44
 
Wouter J

Wouter J

30/11/2013 22:45:06
Quote Anchor link
Laten we eerst je code eens grondig bekijken. Je wilt elk <column> element loopen en daar de name attribute van lezen. Wat je dus doet is foreach op die column en dan de attribuut opvragen. Wat jij nu doet is foreach over een attribuut, dat kan sowieso al niet.

Ten tweede lezen we op php.net dat de return value een "SimpleXMLElement object that can be iterated over to loop through the attributes on the tag" is. Interated betekend loopen met een loop.
Wil jij over alle attributen lopen van een specifiek element? Nee, jij wilt een specifiek attribute (name) opvragen.

Hoe moet dat dan? Nou, we scrollen iets naar beneden naar de eerste reactie en daar zien we het voorbeeld: $sxml->Table[0]['Foo'] Haalt het Foo attribuut van het eerste Table element op.
 
Ki ma

ki ma

01/12/2013 12:42:42
Quote Anchor link
Hmm.. beetje verkeerd opgepakt dus. Ik zal er weer eens goed naar kijken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.