将CDATA添加到xml节点

Mih*_*vak 4 php xml

这个PHP代码工作正常,但如何将CDATA添加到内容节点?

 <?php
 $xml = new DomDocument("1.0", "UTF-8");
 $xml->load('xmldata.xml');

 $title    = $_POST['title'];
 $avtor    = $_POST['avtor'];
 $date     = $_POST['date'];
 $category = $_POST['category'];
 $content  = $_POST['content'];

$rootTag = $xml->getElementsByTagName("root")->item(0);

   $postingTag = $xml->createElement("posting");

     $titleTag    = $xml->createElement("title",    $title);
     $avtorTag    = $xml->createElement("avtor",    $avtor);
     $dateTag     = $xml->createElement("date",     $date);
     $categoryTag = $xml->createElement("category", $category);
     $contentTag  = $xml->createElement("content",  $content);

     $postingTag->appendChild($titleTag);
     $postingTag->appendChild($avtorTag);
     $postingTag->appendChild($dateTag);
     $postingTag->appendChild($categoryTag);
     $postingTag->appendChild($contentTag);

   $rootTag->appendChild($postingTag);

$xml->formatOutput = true;
$xml->save('xmldata.xml');
Run Code Online (Sandbox Code Playgroud)

ThW*_*ThW 8

DOM分隔节点创建和追加.您可以使用文档的方法创建节点,并使用父节点的方法将其附加.

这是一个例子:

$document = new DOMDocument();
$root = $document->appendChild(
  $document->createElement('element-name')
);
$root->appendChild(
  $document->createCDATASection('one')
);
$root->appendChild(
  $document->createComment('two')
);
$root->appendChild(
  $document->createTextNode('three')
);

echo $document->saveXml();
Run Code Online (Sandbox Code Playgroud)

输出:

<?xml version="1.0"?>
<element-name><![CDATA[one]]><!--two-->three</element-name>
Run Code Online (Sandbox Code Playgroud)

DOMNode::appendChild()和类似的方法返回附加节点,因此您可以将它们与DOMDocument::create*()调用结合起来.