Je reçois un flux d'offres et je veux le traiter afin que je puisse l'ajouter à ma base de données. Voici le format, il arrive dans:Comment ajouter des données du flux XML à mysql DB
<deals>
<item>
<couponid>int</couponid>
<merchantid>int</merchantid>
<merchantname>string</merchantname>
<network>string</network>
<label>string</label>
<restrictions>string</restrictions>
<couponcode>string</couponcode>
<link>string</link>
<directlink>string</directlink>
<startdate>YYYY-MM-DD HH:MM TMZ</startdate>
<enddate>YYYY-MM-DD HH:MM TMZ</enddate>
<image>string</image>
<dealtypes>
<type>string</type>
</dealtypes>
<categories>
<category>string</category>
</categories>
<status>status</status>
<lastupdated>YYYY-MM-DD HH:MM TMZ</lastupdated>
<errorreporturl>string</errorreporturl>
<changeaudit>string</changeaudit>
<price>string</price>
<listprice>string</listprice>
<discount>string</discount>
<percent>string</percent>
<local>
<city>string</city>
<state>string</state>
<zipcode>string</zipcode>
<address>string</address>
<businessname>string</businessname>
<businessurl>string</businessurl>
<title2>string</title2>
<expirationdate>string</expirationdate>
<minpurchase>int</minpurchase>
<maxpurchase>int</maxpurchase>
<limitedqty>bool</limitedqty>
<region>string</region>
</local>
</item>
</deals>
je peux traiter la plupart des articles en utilisant:
'couponid' => $node->getElementsByTagName('couponid')->item(0)->nodeValue
Cependant, comment puis-je traiter les éléments contenus dans le nœud « local ». Tous les éléments du flux n'ont pas ce noeud "local". Comment pourrais-je le traiter? Est-ce que ce travail:
$localData = $node->getElementsByTagName('local')->item(0);
if $localData {
'city' => $node->getElementsByTagName('local')->item(city)->nodeValue;
'state' => $node->getElementsByTagName('local')->item(state)->nodeValue;
etc..
}
Vous avez dit "Est-ce que ça marcherait", ça marche? Quoi qu'il en soit, '$ node-> getElementsByTagName ('local') -> getElementsByTagName ('city') -> nodeValue' fonctionnerait .. – Dion