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 に答える