我有一个带有一些CDATA节点的XML文件。我想更改CDATA节点内的文本(将其保留为CDATA节点)。所以,我想我首先需要读取CDATA节点然后再写回来。但是,我不知道如何在PHP中这样做。我能够创建一个新的CDATA节点但是如何编辑CDATA节点?有没有直接的方法呢?
感谢。
答案 0 :(得分:2)
我不熟悉PHP(很多Java DOM经验),但我认为你需要用新的CDATA文本节点替换文本节点。参见
http://www.php.net/manual/en/domdocument.createcdatasection.php
和
答案 1 :(得分:1)
我自己修理了它:
$nodes = $xml->getElementsByTagName('tagname');
$oldTitleNode = null;
$newTitleNode = null;
//Iterate for each <title> tag
foreach ($nodes as $node) {
if ($node->parentNode->getAttribute('name')== $tag_name_value){
$oldTitleNode = $node;
//Create new CDATA Node
$newTitleNode=$node->parentNode->appendChild($xml->createElement('tagname'));
$cdata=$xml->createCDATASection($update_title);
$newTitleNode->appendChild($cdata);
//Replace the Existing CDATA Node
$node->parentNode->replaceChild($newTitleNode, $oldTitleNode);
}
}