XML データを操作する場合、特定の部分を抽出することが重要になる場合があります。一般的なタスクの 1 つは、要素のタグを除いた要素の内部 HTML を取得することです。この記事では、PHP SimpleXML を使用してこれを実現する方法について説明します。
次の XML について考えてみましょう。
<code class="xml"><qa> <question>Who are you?</question> <answer>Who who, <strong>who who</strong>, <em>me</em></answer> </qa></code>
私たちの目標は、「」の内部 HTML を取得することです。
<code class="html">Who who, <strong>who who</strong>, <em>me</em></code>
PHP には、要素の内部 XML にアクセスするための組み込みメソッドが提供されていません。ただし、このニーズを満たすためにカスタム関数を作成できます。そのような関数の 1 つである SimpleXMLElement_innerXML は、以下で定義されています。
<code class="php">function SimpleXMLElement_innerXML($xml) { $innerXML = ''; foreach (dom_import_simplexml($xml)->childNodes as $child) { $innerXML .= $child->ownerDocument->saveXML( $child ); } return $innerXML; }</code>
この関数は、PHP DOM 拡張機能を利用して、SimpleXMLElement ($xml) を DOMNode オブジェクトに変換します。次に、その子ノードを反復処理して、各ノードの XML 表現を $innerXML 文字列に保存します。最後に、$innerXML は要素の内部 HTML を保持します。
SimpleXMLElement_innerXML 関数を使用するには、次のように記述できます。
<code class="php">$xml = simplexml_load_string('<qa><answer>Who who, <strong>who who</strong>, <em>me</em></answer></qa>'); $innerXML = SimpleXMLElement_innerXML($xml->answer); echo $innerXML; // Outputs: Who who, <strong>who who</strong>, <em>me</em></code>
SimpleXMLElement_innerXML 関数を使用すると、要素の内部 XML を簡単に取得できます。 DOM 拡張機能を活用することで、XML 操作を正確に制御できるようになります。
以上がPHP SimpleXML を使用して内部 XML をフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。