4

我有一个带有一些 CDATA 节点的 XML 文件。我想更改 CDATA 节点内的文本(将其保留为 CDATA 节点)。所以,我想我首先需要读取 CDATA 节点,然后将其写回。但是,我不确定如何在 PHP 中做到这一点。我能够创建一个新的 CDATA 节点,但如何编辑 CDATA 节点?有没有直接的方法可以做到这一点?

谢谢。

4

2 回答 2

2

我不精通 PHP(大量 Java DOM 经验),但我认为您需要用新的 CDATA 文本节点替换文本节点。看

http://www.php.net/manual/en/domdocument.createcdatasection.php

http://www.php.net/manual/en/domnode.replacechild.php

于 2010-06-28T20:21:10.470 回答
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);
   } 
}
于 2010-06-29T14:58:39.040 回答