刚开始使用SimpleXML并遇到问题
我能够解析简单的xml页面,如下所示
<something>
<something2> value1 </something2>
<something3> value2 </something3>
</something>
获得something2和something3的值非常简单如果这是我唯一需要的东西
但是我遇到了具有多个标记实例的XML文件的问题,例如
<car>
<carID>001</carID>
<carTyre>4</carTyre>
<carColor>Red</carColor>
<carName>Bruce</carName>
</car>
<car>
<carID>002</carID>
<carTyre>4</carTyre>
<carColor>Blue</carColor>
<carName>Tom</carName>
</car>
<car>
<carID>003</carID>
<carTyre>4</carTyre>
<carColor>Yellow</carColor>
<carName>Alex</carName>
</car>
<car>
<carID>004</carID>
<carTyre>4</carTyre>
<carColor>White</carColor>
<carName>Tina</carName>
</car>
如果我只想要特定信息(不是整个数据集),例如
蒂娜 - 怀特 Tome - Blue我怎么能这样做?
答案 0 :(得分:0)
让我们说这些都在Cars.xml中,然后你可以尝试这样的事情:
<?php
$cars = simplexml_load_file("Cars.XML");
foreach($cars->xpath('//car') as $car) {
$row = simplexml_load_string($car->asXML());
$v = $row->xpath('//carID[. ="004"]');
if($v[0]){
print $car-> carName . '-' . $car-> carColor;
}
}
?>
答案 1 :(得分:0)
您还可以创建类似//car[carID[text()="001"]]
的xpath。这将为您提供carID为001的整个xml结构。您可以将ID更改为任何其他ID。如果你想要这个父节点下的所有细节你可以使用这样的东西//car[carID[text()="001"]]/carTyre
这将为你提供id为001的节点carTyre。希望这会有所帮助。