すべてのコンテキストの SimpleXML オブジェクトを文字列に変換する
XML を操作する場合、PHP の SimpleXML 拡張機能を利用すると、XML データに簡単にアクセスできます。ただし、特定のシナリオでは、コンテキストに関係なく、SimpleXML オブジェクトを文字列に変換する必要があります。
たとえば、次の XML について考えてみましょう。
<channel> <item> <title>This is title 1</title> </item> </channel>
SimpleXML を使用してタイトルを取得する文字列としては問題なく動作します:
$xml = simplexml_load_string($xmlstring); echo $xml->channel->item->title;
ただし、異なるコンテキストでタイトルを文字列として扱おうとすると問題が発生します。配列に追加する場合など:
$foo = array( $xml->channel->item->title );
この場合、文字列の代わりに予期しない SimpleXML オブジェクトが配列に追加されます。この問題を解決するには、次の方法を検討してください。
SimpleXML オブジェクトを文字列に型キャストする:
$foo = array( (string) $xml->channel->item->title );
内部で (string) を使用して SimpleXML オブジェクトを文字列に明示的に型キャストする__toString() メソッドを呼び出します。このメソッドは、SimpleXMLObject マッピングとの干渉を避けるために公開されていませんが、この手法を通じて引き続きアクセスできます。
以上がPHP で SimpleXML オブジェクトを文字列に確実に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。