ホームページ >バックエンド開発 >PHPチュートリアル >PHP で SimpleXMLElement から内部 XML コンテンツを抽出する方法

PHP で SimpleXMLElement から内部 XML コンテンツを抽出する方法

DDD
DDDオリジナル
2024-11-01 16:00:31947ブラウズ

How to Extract Inner XML Content from a SimpleXMLElement in PHP?

PHP SimpleXML: 内部 XML へのアクセス

PHP XML 解析の領域では、SimpleXML 拡張機能を使用すると、開発者は XML ドキュメントを簡単に操作できます。ただし、周囲の要素タグを除いて、XML 要素の内部コンテンツを抽出するのは困難な場合があります。

次の XML スニペットを考えてみましょう。

<qa>
  <question>Who are you?</question>
  <answer>Who who, <strong>who who</strong>, <em>me</em></answer>
</qa>

" のコンテンツのみを取得するには「answer」要素 (つまり、「誰が、誰が 」) を使用するには、デフォルトの asXML() メソッドをバイパスする必要があります。代わりに、dom_import_simplexml() 関数を使用した洗練されたソリューションを紹介します。

<code class="php">function SimpleXMLElement_innerXML($xml)
  {
    $innerXML = '';
    foreach (dom_import_simplexml($xml)->childNodes as $child)
    {
        $innerXML .= $child->ownerDocument->saveXML( $child );
    }
    return $innerXML;
  }</code>

この関数を使用すると、任意の要素の内部 XML にアクセスできます。

<code class="php">$xml = simplexml_load_string($xmlString);
$innerAnswer = SimpleXMLElement_innerXML($xml->answer);</code>

結果の $ innerAnswer 変数には、目的の文字列「誰が、誰が」が含まれます。このアプローチでは、元の書式設定と文字エンティティが内部 XML 内に保存されるため、抽出されたコンテンツの整合性を維持するのに理想的です。

以上がPHP で SimpleXMLElement から内部 XML コンテンツを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。