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

とは言うものの、私の知る限り、simplexmlには優れたXPathサポートがありません。DOMDocument代わりにand を使用すると、これをはるかに簡単に行うことができ、DOMXPath期待どおりに機能します。

于 2013-02-26T10:51:08.470 に答える