Php 在CDATA中创建或插入xml
我一直在测试一些东西,但我无法让它工作,问题是: 我有一个xml:Php 在CDATA中创建或插入xml,php,xml,domdocument,cdata,Php,Xml,Domdocument,Cdata,我一直在测试一些东西,但我无法让它工作,问题是: 我有一个xml: <?xml version="1.0" encoding="UTF-8"?> <history> <name> <age/> </name> </history> 它生成以下xml: <?xml version="1.0" encoding="UTF-8"?> <history> <na
<?xml version="1.0" encoding="UTF-8"?>
<history>
<name>
<age/>
</name>
</history>
它生成以下xml:
<?xml version="1.0" encoding="UTF-8"?>
<history>
<name>
<age/>
</name>
<![CDATA[<?xml version="1.0" encoding="UTF-8"?><history><name><age/></name></history>]]>
</history>
]]>
我目前面临的问题是:
你在正确的轨道上。CDATA部分是外部文档的文本,CDATA中的xml片段是它自己的文档或片段
$xml = new DOMDocument("1.0","UTF-8");
$xml->appendChild($historyNode = $xml->createElement('history'));
$innerXml = new DOMDocument("1.0","UTF-8");
$innerXml->appendChild($nameNode = $innerXml->createElement('name'));
$nameNode->appendChild($ageNode = $innerXml->createElement('age'));
$fragment = $innerXml->saveXml($innerXml->documentElement);
$historyNode->appendChild($xml->createCDATASection($fragment));
$xml->formatOutput = true;
echo $xml->saveXML();
输出:
<?xml version="1.0" encoding="UTF-8"?>
<history><![CDATA[<name><age/></name>]]></history>
<history><![CDATA[<name><age/></name><address/>]]></history>
输出:
<?xml version="1.0" encoding="UTF-8"?>
<history><![CDATA[<name><age/></name>]]></history>
<history><![CDATA[<name><age/></name><address/>]]></history>
]>
你走对了方向。CDATA部分是外部文档的文本,CDATA中的xml片段是它自己的文档或片段
$xml = new DOMDocument("1.0","UTF-8");
$xml->appendChild($historyNode = $xml->createElement('history'));
$innerXml = new DOMDocument("1.0","UTF-8");
$innerXml->appendChild($nameNode = $innerXml->createElement('name'));
$nameNode->appendChild($ageNode = $innerXml->createElement('age'));
$fragment = $innerXml->saveXml($innerXml->documentElement);
$historyNode->appendChild($xml->createCDATASection($fragment));
$xml->formatOutput = true;
echo $xml->saveXML();
输出:
<?xml version="1.0" encoding="UTF-8"?>
<history><![CDATA[<name><age/></name>]]></history>
<history><![CDATA[<name><age/></name><address/>]]></history>
输出:
<?xml version="1.0" encoding="UTF-8"?>
<history><![CDATA[<name><age/></name>]]></history>
<history><![CDATA[<name><age/></name><address/>]]></history>
]>
在CDATA中包含XML对我来说不太好。目的是什么?@michi不知何故,我们合作伙伴的API要求我们包含它,没有它,他们会给出系统错误。在CDATA中包含XML对我来说不太好。目的是什么?@michi不知何故,我们合作伙伴的API要求我们包含它,如果没有它,他们会给出系统错误。