我有这个xml文件:
<product
<EANCode EAN="5053973641331"/>
我用它来分配值
$prodean=$XMLarray['Product']['EANCode']['@attributes'];
$ean1[0]=$prodean['EAN'];
它工作正常。 但是当我有更多的EAN值时,例如
<EANCode EAN="5053973641331"/>
<EANCode EAN="7301433035830"/>
<EANCode EAN="0730143303583"/>
<EANCode EAN="0730143303378"/>
<EANCode EAN="5053118731828"/>
<EANCode EAN="5053973635132"/>
它的工作做得很好。
我的错误在哪里?
我想要第一个EAN值。我有它,如果在xml文件中只有一个EAN值,但如果有两个或更多的值我有$ ean1 [0]
的NULL答案 0 :(得分:0)
这是一个简短的例子。我测试了你的代码,有点棘手。
$xml = '<products>
<EANCode EAN="5053973641331"/>
<EANCode EAN="7301433035830"/>
<EANCode EAN="0730143303583"/>
<EANCode EAN="0730143303378"/>
<EANCode EAN="5053118731828"/>
<EANCode EAN="5053973635132"/>
</products>';
$XMLarray = simplexml_load_string($xml);
foreach($XMLarray->EANCode as $xml) {
echo $xml->attributes()['EAN']."<br>";
}
所以使用你的xml示例:
http://data.icecat.biz/export/freexml.int/IT/8952561.xml
我的代码无效,因为您有一个名为“Product”的节点,因此您应该首先访问它们。然后应该可以获得数据。
$XMLarray = simplexml_load_string(file_get_contents("test.xml"));
foreach($XMLarray->Product->EANCode as $xml) {
echo $xml->attributes()['EAN']."<br>";
}
我已将您的xml放到文件test.xml中,并且该代码正在运行。
答案 1 :(得分:0)
试试这个:
$file = 'http://openIcecat-xml:freeaccess@data.icecat.biz/export/freexml.int/IT/8952561.xml';
$xml = simplexml_load_file($file);
// get first "EANCode" node and its "EAN" attribute
echo $xml->Product->EANCode[0]['EAN'];
希望这有帮助。