我必须从Mysql数据库开始创建一个Xml文件。我正在使用php脚本来生成xml文件。 这里是我用来生成我的xml文件的PHP代码部分:
// create a new XML document
$doc = new DomDocument('1.0', 'UTF-8');
// create root node
$root = $doc->appendChild($doc->createElement('rss'));
$root->setAttribute('version', '2.0');
$root->setAttribute('encoding', 'UTF-8');
// create children
while($row = mysql_fetch_assoc($result)) {
// add node for each row
$occ = $doc->createElement('item');
$occ = $channelNode->appendChild($occ);
// add a child node for each field
foreach ($row as $fieldname => $fieldvalue) {
if($fieldname =='description') {
$newcdata=$doc->createCDATASection($fieldvalue);
$child = $doc->createElement($fieldname);
$child = $occ->appendChild($child);
$value = $doc->createTextNode($fieldvalue);
$value = $child->appendChild($newcdata);
}
else {
$child = $doc->createElement($fieldname);
$child = $occ->appendChild($child);
$value = $doc->createTextNode($fieldvalue);
$value = $child->appendChild($value);
}
} // foreach
} // while
这个程序运作良好。问题发生在数据库中有特殊字符插入XML文件的情况下,在这种情况下我试图使用CDATA
插入数据,但它无法正常工作。那么,如何将spcecial字符插入Xml文件?
答案 0 :(得分:0)
无法将certain characters插入XML文档。解决方法是让发送方和接收方就如何编码达成一致。常见选项包括Base64和Ascii85。
也可以进行简单的字符替换,例如使用Unicode控制图片。例如,对于\ 0,␀\u2400和对于\ b,␇\u2407。这使得人类可读,但仍需要发送者和接收者同意。