我有一个javascript例程,它通过AJAX抓取XML流然后解析它。它在FF和Chrome中运行良好,但在IE 9中,如果节点内有连续的Line Feeds,IE会将它们压缩成一个空格和一个换行符。
具体来说,在retNode是xml节点的情况下,retNode.text在IE中具有压缩的空白区域,但包括FF和Chrome中的所有字符。
我尝试编写自己的例程来解析XML,但这似乎很脆弱,浪费时间。我尝试使用PreserveWhitespace属性,但似乎在javascript中不可用。我尝试使用retNode.nodeValue而不是retNode.text,但nodeValue没有值。
我更喜欢不使用jquery的解决方案,因为我不知道jquery,而且我不确定我需要添加什么其他代码来使jquery工作。
提前致谢!
答案 0 :(得分:1)
preserveWhiteSpace
。
您是否尝试过以下代码?
var xhr = new XMLHttpRequest();
xhr.responseXML.preserveWhiteSpace = true;
…
答案 1 :(得分:0)
它应该只是您丢失的标签之间的空白。应始终保留非标签之间的空格(例如一对标签内的字符串之间)。
换句话说,<tag> </tag>
将成为<tag></tag>
,而<tag>foo bar</tag>
将保持不变。
如果您需要保留两个标记之间的空格,并且preserveWhiteSpace
由于某种原因不适合您,那么我认为如果可能,您必须将 
放入XML源中(
的数字版本,你不能使用它,因为它在正常情况下是非法的XML字符,即除非你定义了实体)