这个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)
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*()调用结合起来.