我正在使用PHP生成一些XML。我需要在发送的一些文本中加上引号。我可以使用htmlentities或htmlspecialchars()将引号转换为特殊字符,特殊字符在Firefox或Chrome中显示正常。但是,在Internet Explorer中,它只是创建一个空白项目。
在Firefox中写道:
<marker description="Yes "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清除缓存,即使我正在进行强制刷新,但并不总是令人耳目一新。我认为我原来问题的一部分是有人复制并将原始数据粘贴到表单中,最后得到了角度报价。转换这些的想法?感谢您对我的问题的帮助,即使我认为这是一个刷新错误。
答案 0 :(得分:0)
您需要更改此行:
$newnode->setAttribute("description", "Yes "I Do");
对此:
$newnode->setAttribute("description", "Yes "I Do");
如果您不想手动执行每个实体,可以使用htmlspecialchars()
来实现相同的目标。