PHP の SimpleXML を使用してカスタム名前空間内の要素にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-06 03:47:02
オリジナル
536 人が閲覧しました

How to Access Elements Within Custom Namespaces Using PHP's SimpleXML?

PHP の SimpleXML の名前空間の落とし穴

PHP の SimpleXML を使用して XML ドキュメントを解析する場合、カスタムの名前空間が問題を引き起こす可能性があります。カスタム名前空間を持つ次の XML について考えてみましょう。

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au">
  <channel>
   <item>
    <link>qweqwe</link>
    <moshtix:genre>asdasd</moshtix:genre>
...</code>
ログイン後にコピー

このような名前空間内の要素にアクセスする場合、SimpleXML のデフォルトの動作は単純ではありません。この課題を克服する方法は次のとおりです。

解決策: 名前空間引数を指定して Children() を利用する

SimpleXML の Children() メソッドを使用すると、名前空間に基づいて要素をフィルタリングできます。名前空間プレフィックスと true を 2 番目の引数として渡して、名前空間情報も取得します:

<code class="php">$rss = simplexml_load_string(...);

foreach ($rss->channel as $channel)
{
    echo 'link: ', $channel->link, "\n";
    echo 'genre: ', $channel->children('moshtix', true)->genre, "\n";
}</code>
ログイン後にコピー

この例では、出力は次のようになります:

link: qweqwe
genre: asdasd
ログイン後にコピー

このアプローチを使用すると、 PHP の SimpleXML を使用して XML ドキュメントを解析するときに、カスタム名前空間内の要素に効果的にアクセスして利用できます。

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

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