SimpleXML を使用して複数の名前空間を持つ XML を解析する方法

Barbara Streisand
リリース: 2024-11-05 18:52:02
オリジナル
385 人が閲覧しました

How to Parse XML with Multiple Namespaces Using SimpleXML?

SimpleXML を使用した複数の名前空間を持つ XML の解析

SimpleXML を使用する場合、複数の名前空間を持つ XML ドキュメントの解析には課題が生じます。このようなドキュメントを正常に解析するには、名前空間宣言を処理する必要があります。

提供された XML ドキュメントには複数の名前空間があります:

<code class="xml"><soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Header>
    <eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader">
      ...
    </eb:MessageHeader>
    <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
      ...
    </wsse:Security>
  </soap-env:Header>
  <soap-env:Body>
    <SessionCreateRS xmlns="http://www.opentravel.org/OTA/2002/11">
      ...
    </SessionCreateRS>
  </soap-env:Body>
</soap-env:Envelope></code>
ログイン後にコピー

このドキュメントを SimpleXML で解析するには、次の手順に従います。

  1. XML のロード: XML 文字列を SimpleXML オブジェクトにロード:
<code class="php">$xml = simplexml_load_string($xmlString);</code>
ログイン後にコピー
  1. 名前空間の登録: registerXPathNamespace() メソッドを使用して SimpleXML オブジェクトに名前空間を登録します:
<code class="php">$xml->registerXPathNamespace('soap-env', 'http://schemas.xmlsoap.org/soap/envelope/');
$xml->registerXPathNamespace('eb', 'http://www.ebxml.org/namespaces/messageHeader');
$xml->registerXPathNamespace('wsse', 'http://schemas.xmlsoap.org/ws/2002/12/secext');</code>
ログイン後にコピー
  1. XPath クエリを使用する: XPath クエリを使用して、 XML ドキュメント、特定の名前空間内の要素にアクセスする:
<code class="php">foreach ($xml->xpath('//eb:MessageHeader') as $header) {
  var_dump($header->xpath('//eb:CPAId')); // Outputs "something"
}</code>
ログイン後にコピー

これらの手順に従うと、SimpleXML を使用して複数の名前空間を持つ XML ドキュメントを正常に解析でき、各名前空間内の要素に効率的にアクセスして操作できるようになります。

以上がSimpleXML を使用して複数の名前空間を持つ XML を解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!