Internet Explorer不显示XML中的引号

时间:2012-02-22 22:51:18

标签: php xml internet-explorer

我正在使用PHP生成一些XML。我需要在发送的一些文本中加上引号。我可以使用htmlentities或htmlspecialchars()将引号转换为特殊字符,特殊字符在Firefox或Chrome中显示正常。但是,在Internet Explorer中,它只是创建一个空白项目。

在Firefox中写道:

<marker description="Yes &quot;I Do"/>

在IE中写道:

<marker description=""\>

以下是相关代码:

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
header("Content-type: text/xml");

$node = $dom->createElement("marker");
$newnode->setAttribute("description", htmlentities("Yes \"I Do"))
echo $dom->saveXML();

抱歉,我一直在尝试调试所有内容,但我发布了错误的文字。我一直在使用htmlspecialchars()作为更改说明它仍然无法正常工作。我尝试了&amp; quot作为测试,它适用于Firefox但不适用于IE。抱歉原来的拼写错误。 - user1098504 14小时前

作为测试,无论如何都要把“是”我做“看看IE是否仍然坏了。” - SpikeX 14小时前

我现在正在工作。我一直在尝试htmlspecialchars()并尝试使用&amp; quot作为测试。我觉得在我测试的某个地方我没有每次用IE清除缓存,即使我正在进行强制刷新,但并不总是令人耳目一新。我认为我原来问题的一部分是有人复制并将原始数据粘贴到表单中,最后得到了角度报价。转换这些的想法?感谢您对我的问题的帮助,即使我认为这是一个刷新错误。

1 个答案:

答案 0 :(得分:0)

您需要更改此行:

$newnode->setAttribute("description", "Yes "I Do");

对此:

$newnode->setAttribute("description", "Yes &quot;I Do");

如果您不想手动执行每个实体,可以使用htmlspecialchars()来实现相同的目标。