PHP の SimpleXMLElement による CDATA の処理
SimpleXMLElement を使用して CDATA セクションを含む XML ドキュメントを操作する場合、一般的に、 CDATA タグは NULL として返されます。これにより、目的のデータへのアクセスや処理が困難になる可能性があります。
CDATA コンテンツの取得
CDATA タグで囲まれたコンテンツを取得するには、いくつかの方法があります。 :
たとえば、次の XML スニペットがあるとします。
<content><![CDATA[Hello, world!]]></content>
CDATA にアクセスできます。次の PHP コードを使用してコンテンツを作成します:
$content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' ); echo (string) $content;
これにより、出力:
Hello, world!
代替アプローチ: LIBXML_NOCDATA
特定の状況では、デフォルトの SimpleXMLElement 設定を使用して CDATA コンテンツを取得すると問題が発生する可能性があります。これを解決するには、XML 解析中に LIBXML_NOCDATA フラグを使用してみてください。
$content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' , null , LIBXML_NOCDATA );
このアプローチでは、XML 解析動作が変更され、CDATA セクションを通常のテキスト ノードとして扱うため、XML を必要とせずにコンテンツにアクセスできるようになります。明示的なキャストまたは直接出力。
以上がPHP の SimpleXMLElement を使用して CDATA コンテンツを適切に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。