我正在使用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()'
提前致谢。
答案 0 :(得分:2)
看看这是否适合你:
$name = $order->xpath('/payment/cardHolderName');
echo $name[0];
答案 1 :(得分:0)
XPath查询不太正确,在此上下文中$xml
表示您的根元素(“付款”),因此您可以使用
$order->xpath('cardHolderName');
也就是说,AFAIK simplexml支持不到一流的XPath。您可以使用DOMDocument
和DOMXPath
轻松完成这项工作,这可以按照您的预期运作。