SimpleXML を使用して名前空間で XML を解析する方法
問題:
解析しようとしたときSimpleXML を使用した名前空間を含む XML、registerXPathNamespace() で問題が発生するmethod.
XML 構造:
<root xmlns:event="http://www.webex.com/schemas/2002/06/service/event"> <event:event> <event:sessionKey>...</event:sessionKey> ... </event:event> ... </root>
Xpath クエリの例:
「event:sessionKey」を抽出しようとしています価値観使用方法:
$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event'); $event->xpath('//e:sessionKey')
解決策:
問題は、XPath クエリに名前空間プレフィックス ('e') と完全な名前空間 URI の両方が必要であることにあります。 registerXPathNamespace() を使用しなくても、
修正済みコード:
$xml = new SimpleXMLElement($r); foreach ($xml->xpath('//event:event') as $event) { var_export($event->xpath('event:sessionKey')); }
以上がSimpleXML の XPath を使用して名前空間付き XML を正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。