名前空間を含む XML ファイルに対して print_r() を使用すると、SimpleXML オブジェクトが空になるのはなぜですか?

DDD
リリース: 2024-10-27 06:27:29
オリジナル
869 人が閲覧しました

Why is my SimpleXML Object Empty When Using print_r() on an XML File with Namespaces?

SimpleXML と print_r() - これはなぜ空ですか?

simplexml_load_file() で XML ファイルをロードし、print_r($xml) はなぜ空のように見えるのか疑問に思うかもしれません:

<code class="xml"><ArrayOfItem>
  <Item>
    <attributes>
      <Attribute>
        <dataType>string</dataType>
      </Attribute>
    </attributes>
  </Item>
</ArrayOfItem></code>
ログイン後にコピー
<code class="php">$xml = simplexml_load_file('myfile.xml');
print_r($xml);</code>
ログイン後にコピー
結果:

SimpleXMLElement Object
(
    [Item] => SimpleXMLElement Object
        (
        )

)
ログイン後にコピー

なぜこれは空ですか?

この理由は、

print_r() ノード内の要素の内容を出力しないためです。異なる XML 名前空間。

解決策:

これらの要素の内容にアクセスして出力するには、

SimpleXMLElement など、XML 名前空間を処理するように特別に設計されたメソッドを使用します。 :children() または SimpleXMLElement::xpath()。例:

以上が名前空間を含む XML ファイルに対して print_r() を使用すると、SimpleXML オブジェクトが空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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