我一直在测试一些东西,但我无法让它工作,这是问题所在:
我有一个xml:
<?xml version="1.0" encoding="UTF-8"?>
<history>
    <name>
        <age/>
    </name>
</history>
我想在该 XML 中插入一个 CDATA,并且 CDATA 的内容也是 xml 的一部分,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<history>
    <![CDATA[
    <name>
        <age/>
    </name>
    ]]>
</history>
我正在使用 DOMDocument 创建 xml:
        header('Content-Type: text/xml');
        $xml = new DOMDocument("1.0","UTF-8");
        $base = $xml->appendChild($xml->createElement('history'));
        $name = $base->appendChild($xml->createElement('name'));
        $age = $name->appendChild($xml->createElement('age'));
        $test = $xml->saveXML();
        $xml->getElementsByTagName('history')->item(0)->appendChild($xml->createCDATASection($test));
        $xml->formatOutput = true;
        echo $xml->saveXML();
它生成这个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 如何工作的方式,看起来我需要先完成所有“内部 xml”,然后才能剪切“内部 xml”,然后创建 cdata 部分并将其粘贴到 cdata 部分
- 我正在使用 str_replace 的临时解决方案,但我想尽可能多地利用 domdocument createCData 函数。