我正在尝试解析XML,其中一些ocassions具有相同名称标签的元素。例如:
<Event Region="xxx" RegionName="xxx">
<Id>xxx</Id>
<Name>xxx</Name>
<Price Name="V" ProductMessage="" ServiceCharge="xx">xx</Price>
<Price Name="A" ProductMessage="" ServiceCharge="xx">xx</Price>
<URL>xxx</URL>
<Date>xxx</Date>
<GMTOffset>-x</GMTOffset>
<StartTime>xx</StartTime>
<EndTime>xxx</EndTime>
</event>
在这种情况下,重复Price
,在其他一些情况下,只有一个Price
。
有没有办法检索Price
的计数并单独访问每个?
感谢任何提示!
答案 0 :(得分:2)
$xml = new SimpleXMLElement($data); //Where $data represents your XML string
foreach($xml->Price as $price) echo (string)$price . '<br>';
答案 1 :(得分:0)
作为documented,您可以将重复的元素视为数组项:
$xml = simplexml_load_string('<Event Region="xxx" RegionName="xxx">
<Id>xxx</Id>
<Name>xxx</Name>
<Price Name="V" ProductMessage="" ServiceCharge="xx">a</Price>
<Price Name="A" ProductMessage="" ServiceCharge="xx">b</Price>
<URL>xxx</URL>
<Date>xxx</Date>
<GMTOffset>-x</GMTOffset>
<StartTime>xx</StartTime>
<EndTime>xxx</EndTime>
</Event>');
echo $xml->Price[0] . PHP_EOL;
echo $xml->Price[1] . PHP_EOL;
a
b
(我已修复您的数据样本以使其成为有效的XML。)