php导出xml CDATA转义

php导出xml CDATA转义,php,xml,Php,Xml,我正在尝试导出带有CDATA标记的xml。我使用以下代码: $xml_product = $xml_products->addChild('product'); $xml_product->addChild('mychild', htmlentities("<![CDATA[" . $mytext . "]]>")); 但我需要: <mychild><![CDATA[My some long long long text]]></mychi

我正在尝试导出带有
CDATA
标记的xml。我使用以下代码:

$xml_product = $xml_products->addChild('product');
$xml_product->addChild('mychild', htmlentities("<![CDATA[" . $mytext . "]]>"));
但我需要:

<mychild><![CDATA[My some long long long text]]></mychild> 

作为一个如何添加CData节的简短示例,请注意它跳转到使用DOMDocument在中添加CData节的方式。代码构建了一个
元素,
$xml\u product
在其中创建了一个新元素
。然后使用
dom\u import\u simplexml
将此新节点导入到domeElement中。然后,它使用DOMDocument
createCDATASection
方法正确创建适当的位,并将其添加回节点

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Products />');

$xml_product = $xml->addChild('product');
$newNode = $xml_product->addChild('mychild');
$mytext = "<html></html>";
$node = dom_import_simplexml($newNode);
$cdata = $node->ownerDocument->createCDATASection($mytext);
$node->appendChild($cdata);
echo $xml->asXML();
$xml=新的SimpleXMLElement(“”);
$xml_product=$xml->addChild('product');
$newNode=$xml_product->addChild('mychild');
$mytext=“”;
$node=dom\u import\u simplexml($newNode);
$cdata=$node->ownerDocument->CreateCataSection($mytext);
$node->appendChild($cdata);
echo$xml->asXML();
此示例输出

<?xml version="1.0" encoding="UTF-8"?>
<Products><product><mychild><![CDATA[<html></html>]]></mychild></product></Products>

]]>

尝试urldecode()而不是htmlentities()。如果您使用DOMDocument,您可以使用CreateCataSection来完成这项工作。()调用
addChild()
函数时是否可以创建CDATA节?@Masha为什么要在那里使用CDATA节?为什么不
addChild('mychild',$mytext)够了吗?再次读取时,将添加到XML节点的数据将是相同的。因为
$mytext
可能包含任何用户输入,包括html标记、&symbol和类似“&an;”的内容这是没有正确解析的
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Products />');

$xml_product = $xml->addChild('product');
$newNode = $xml_product->addChild('mychild');
$mytext = "<html></html>";
$node = dom_import_simplexml($newNode);
$cdata = $node->ownerDocument->createCDATASection($mytext);
$node->appendChild($cdata);
echo $xml->asXML();
<?xml version="1.0" encoding="UTF-8"?>
<Products><product><mychild><![CDATA[<html></html>]]></mychild></product></Products>