ホームページ >バックエンド開発 >PHPチュートリアル >SimpleXML オブジェクトの @attributes にアクセスするにはどうすればよいですか?
SimpleXML から @attributes のエニグマにアクセス
SimpleXML オブジェクトから @attributes を取得するときに問題が発生しましたか?絶望しないでください!
オブジェクト全体を検査すると期待どおりの出力が得られるのに、属性にアクセスするためにドリルダウンすると空の謎が残るのは困惑します。以下のコードはこの問題を示しています:
$xml = simplexml_load_string('<OFFICE Token="123" Name="Bob Smith">...'); var_dump($xml); // Outputs the entire XML object var_dump($xml->OFFICE); // Outputs the nested tag var_dump($xml->OFFICE->{'@attributes'}); // Empty object, despite attributes being present
ただし、これらのとらえどころのない属性にアクセスする秘密を明らかにする隠れた宝石があります:
$xml->attributes()->Token // Output: 123
この構文を使用すると、次のような必要性を回避できます。 {'@attributes'} を明示的に指定します。代わりに、属性自体は、attributes() オブジェクトのプロパティとして直接アクセスされます。
そのため、次回 @attributes を取得するのに苦労した場合は、このシンプルだが強力なテクニックを活用してください。これは、SimpleXML を使用して XML ドキュメント内に隠された豊富な情報を解明する鍵となります。
以上がSimpleXML オブジェクトの @attributes にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。