我是XML Parsing的新手,所以请在我的问题中指出任何错误。
问题:在某些情况下,XML文件包含& 。当调用这些条目时,XML符号会由符号附近的浏览器生成。我想知道究竟是什么导致了这个问题并阻止了格式良好的XML的形成。
这是我的php代码......
for($j=0;$j<$length;$j++)
{
$name=$parent->childNodes->item($j)->nodeName;
for($k=0;$k<$num;$k++)
{
if($name==$elements_reqd[$k])
{
$value=$parent->childNodes->item($j)->textContent;
$info=array_push_assoc($info,$elements_reqd[$k],$value);
}
}
}
echo "<LISTING>";
foreach($info as $key => $value)
{
echo "<$key>$value</$key>";
}
echo "</LISTING>";
function array_push_assoc(&$array, $key, $value){
$array[$key] = $value;
return $array;
}
答案 0 :(得分:0)
有5 characters that must be escaped in XML,&amp;成为其中之一。如果$ value是一个类似“This&amp; That”的字符串,它应该在XML中显示为“This &
That”
在PHP中实现XML转义的一种方法是:
echo "<$key>".htmlspecialchars($value)."</$key>";
此外,在回显XML输出之前,设置XML的标题并添加文档声明,以便浏览器确切知道XML正在传递:
header ("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo "<LISTING>";
...