1

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()'

提前致谢。

4

2 回答 2

2

看看这是否适合你:

$name = $order->xpath('/payment/cardHolderName');
echo $name[0];
于 2013-02-26T10:48:56.910 回答
0

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

$order->xpath('cardHolderName');

也就是说,AFAIK simplexml 对 XPath 的支持并不出色。DOMDocument使用and会更容易做到这一点DOMXPath,它可以按您的预期工作。

于 2013-02-26T10:51:08.470 回答