0

次のように、php を使用して xml 内に html 文字列を配置しようとしています。

<?php
$xml_resource = new SimpleXMLElement('stuff.xml', 0, true);
$xml_resource->content = '<![CDATA[<u>111111111111111111111111111111111 text</u>]]>';
$xml_resource->asXML('stuff.xml');
?>

しかし、何らかの理由で私のxmlファイルは次のようになります。

<?xml version="1.0"?> <data>
    <content id="pic1" frame="1" xpos="22" ypos="22" width="11" height="11">&lt;![CDATA[&lt;u&gt;111111111111111111111111111111111 text&lt;/u&gt;]]&gt;</content> </data>

お世話になりました。

4

1 に答える 1

1

SimpleXML は CDATA セクションを作成できません。ただし、単純に HTML をノードに割り当てることは、機能的に同等である必要があります。

$xml_resource->content = '<u>111111111111111111111111111111111 text</u>';

もちろん、特殊文字はエスケープされ、結果は CDATA セクションを使用した場合と同じになります。


絶対に CDATA セクションを作成したい場合は、SimpleDOMなどを使用して、対応する DOM メソッドにアクセスする必要があります。

include 'SimpleDOM.php';

$xml_resource = new SimpleDOM('stuff.xml', 0, true);
$xml_resource->content = '';
$xml_resource->content->insertCDATA('<u>111111111111111111111111111111111 text</u>');
$xml_resource->asXML('stuff.xml');
于 2010-02-01T07:18:20.123 に答える