ホームページ >バックエンド開発 >PHPチュートリアル >SimpleXML を使用して名前空間を持つ XML 要素および属性にアクセスするにはどうすればよいですか?

SimpleXML を使用して名前空間を持つ XML 要素および属性にアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-23 18:49:13925ブラウズ

How Can I Access XML Elements and Attributes with Namespaces Using SimpleXML?

SimpleXML のコロンを使用した XML 名前空間へのアクセス

タグ名と属性名のコロンで示される XML 名前空間では、複数の形式の組み合わせが可能です単一の文書で。 SimpleXML は、children() メソッドとattributes() メソッドを使用して、特定の名前空間の要素と属性にアクセスするメカニズムを提供します。

名前空間へのアクセスに関する問題

要素にアクセスしようとしたときまたは、SimpleXML 構文 ->ns:element を使用して名前にコロンが含まれる属性、または->{'ns:element'} は機能しない可能性があります。コロンは名前空間を示します。一時的にその名前空間に切り替えるには、children() メソッドを使用する必要があります。

解決策

特定の要素と属性にアクセスするには名前空間:

  • 要素: を使用します->children(XMLNS_NAMESPACE) を使用して、目的の名前空間に切り替えます。たとえば、 ->children(XMLNS_EG1)->list->children(XMLNS_EG2)->item.
  • Attributes: 内で ->attributes(XMLNS_NAMESPACE) を使用します。 Children() メソッド。たとえば、->children(XMLNS_EG1)->list->children(XMLNS_EG2)->item->attributes(XMLNS_SEQ)->position.

Initial名前空間の選択

また、simplexml_load_string または simplexml_load_file の 4 番目のパラメーターを $namespace_or_prefix として使用して、XML をロードするときに初期名前空間を指定します。これにより、最初の Children() 呼び出し、たとえば $sx = simplexml_load_string($xml, null, 0, XMLNS_EG1); が不要になります。

省略表記 (非推奨)

省略表現として、名前空間のローカル エイリアスを 2 番目のパラメータとして使用できます。 Children() とattribute()。ただし、完全な名前空間 URI に依存することは、一貫性と将来の保証のために推奨されるアプローチです。

以上がSimpleXML を使用して名前空間を持つ XML 要素および属性にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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