SimpleXML でのカスタム名前空間の処理
質問:
カスタム名前空間を含む XML ドキュメント内名前空間の場合、SimpleXML 解析はその名前空間からの要素を公開できません。これはどのように解決できますか?
回答:
SimpleXML を使用してカスタム名前空間要素にアクセスするには、名前空間プレフィックスを登録して使用する必要があります。これは通常、最初の引数として名前空間プレフィックスを指定し、2 番目の引数として true を指定して再帰的マッチングを有効にする Children() 関数を使用して実現されます。
<code class="php">$rss = simplexml_load_string( '<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au"> <channel> <link>qweqwe</link> <moshtix:genre>asdasd</moshtix:genre> </channel> </rss>' ); foreach ($rss->channel as $channel) { echo 'link: ', $channel->link, "\n"; echo 'genre: ', $channel->children('moshtix', true)->genre, "\n"; }</code>
これは出力します:
link: qweqwe genre: asdasd
名前空間プレフィックスを登録すると、カスタム名前空間要素にアクセスし、children() を使用してその値を取得できるようになります。
以上がSimpleXML を使用してカスタム名前空間内の要素にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。