ホームページ >バックエンド開発 >PHPチュートリアル >SimpleXML の XPath を使用して名前空間付き XML を正しく解析するにはどうすればよいですか?

SimpleXML の XPath を使用して名前空間付き XML を正しく解析するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-18 10:05:10688ブラウズ

How to Correctly Parse Namespaced XML with SimpleXML's XPath?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。