2
我有以下的PHP和XML:PHP,XPath和SimpleXML的 - 的XPath不工作
$XML = <<<XML
<items>
<item id="12">
<name>Item A</name>
</item>
<item id="34">
<name>Item B</name>
</item>
<item id="56">
<name>Item C</name>
</item>
</items>
XML;
$simpleXmlEle = new SimpleXMLElement($XML);
print_r($simpleXmlEle->xpath('./item[1]'));
print "- - - - - - -\n";
print_r($simpleXmlEle->xpath('./item[2][@id]'));
print "- - - - - - -\n";
print_r($simpleXmlEle->xpath('./item[1]/name'));
我能够访问ID这样
$simpleXmlEle->items->item[0]['id']
由于它是一个动态的应用xpath在运行时以字符串形式提供,所以我相信我应该使用xpath。
上面PHP生产:
PHP:
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 12
)
[name] => Item A
)
)
- - - - - - -
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 34
)
[name] => Item B
)
)
- - - - - - -
Array
(
[0] => SimpleXMLElement Object
(
)
)
我理解的第一输出,但第2个输出内部的整体元件被返回,而不是仅仅的属性。
1)有什么想法为什么?
而且最后一个项目是空
2)这是为什么,什么是正确的XPath?
我的目标是第二个和第三个输出为:34(第二元素的id属性的值)项目A(只是第一个元素的名称)。
尝试这样做,它的作品,感谢 –
以及@DamienPyseek话,不要忘了接受的答案 – Alex
已经做到了现在的感谢 –