此 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');
最佳答案
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();
输出:
<?xml version="1.0"?>
<element-name><![CDATA[one]]><!--two-->three</element-name>
DOMNode::appendChild()
和类似方法返回附加的节点,因此您可以将它们与 DOMDocument::create*()
调用组合。
关于php - 将 CDATA 添加到 xml 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240495/