【PHP8.x】XMLReader::readOuterXml()メソッドの使い方
readOuterXmlメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
readOuterXmlメソッドは、XMLReaderオブジェクトが現在位置しているノードとその子孫ノードを含むXML全体を文字列として取得するメソッドです。このメソッドは、現在のノードの開始タグから終了タグまでのすべての内容を、XML形式の文字列として返します。
具体的には、<item><title>サンプル</title><price>1000</price></item>のようなXMLデータにおいて、もしXMLReaderが<item>ノードに位置している場合、readOuterXmlメソッドは<item><title>サンプル</title><price>1000</price></item>という文字列全体を返します。この機能は、特定のXML要素とその内部構造すべてを一度に処理したい場合や、取得したXMLフラグメントを別のXML処理系に渡したい場合などに非常に役立ちます。
このメソッドを実行しても、XMLReaderの内部ポインタは次のノードには移動しません。引き続き次のノードを読み進めるためには、別途read()メソッドを呼び出す必要があります。現在のノードが有効でない場合や、外部XMLが存在しない場合は空の文字列が返されることがあります。返される文字列は通常、UTF-8でエンコードされます。
構文(syntax)
1<?php 2 3$reader = new XMLReader(); 4$reader->XML('<root><item id="1">Data</item></root>'); 5 6// XMLドキュメントの次のノードを読み進める 7$reader->read(); // <root> 8$reader->read(); // <item id="1"> 9 10// 現在のノード (<item id="1">Data</item>) とその子孫を含むXMLを文字列として取得 11$outerXmlString = $reader->readOuterXml(); 12echo $outerXmlString; // 出力: <item id="1">Data</item> 13 14$reader->close(); 15 16?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|false
現在のノードのXMLコンテンツを文字列として返します。ノードの終了に達した場合はfalseを返します。