XPath - 数组到字符串转换错误

时间:2013-02-26 10:33:12

标签: xml xpath simplexml php

我正在使用simplexml_load_string加载一些XML:

$xml = "<payment><cardHolderName><![CDATA[John Smith]]></cardHolderName></payment>";
$xml = simplexml_load_string($xml, null, LIBXML_NOCDATA);

如何使用xpath访问cardHolderName(John Smith)?我试过了:

$name = $xml->xpath('/payment/cardHolderName');
echo $name;

但价值是空的,我收到警告:

  

数组到字符串转换

与所有这些xpath相同的结果:

'/payment/cardHolderName'
'/payment/cardHolderName[1]'
'/payment/cardHolderName/text()'
'/payment/cardHolderName[1]/text()'

提前致谢。

2 个答案:

答案 0 :(得分:2)

看看这是否适合你:

$name = $order->xpath('/payment/cardHolderName');
echo $name[0];

答案 1 :(得分:0)

XPath查询不太正确,在此上下文中$xml表示您的根元素(“付款”),因此您可以使用

来引用该名称
$order->xpath('cardHolderName');

也就是说,AFAIK simplexml支持不到一流的XPath。您可以使用DOMDocumentDOMXPath轻松完成这项工作,这可以按照您的预期运作。