繁体   English   中英

PHP XML编辑CDATA节点

[英]PHP XML editing CDATA node

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

谢谢。

我不熟悉PHP(很多Java DOM经验),但我认为你需要用新的CDATA文本节点替换文本节点。 看到

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

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

我自己修理了它:

$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);
   } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM