我有 Win 7、64 位、Firefox 32.0.1、Noscript 正在运行。
以下代码仅返回 199 个带有 aXML.getElementsByTagName("node") 的节点,而在解析的文本中有 300 个节点,这不是格式正确的 xml。
var atext = '';
for (var i=0;i<300;i++) {
atext += ' <node id="'+i+'" lat="42.5168939" lon="1.553855" version="2" changeset="21730124"/>'+"\n\r";
}
parser = new DOMParser();
aXML= parser.parseFromString(atext , "text/html");
console.log(" nodes: " + aXML.getElementsByTagName("node").length
+"\n\r atext.length:" + atext.length);
console.log(aXML.getElementsByTagName('node'));
控制台显示:
" nodes: 199
atext.length:25390"
HTMLCollection [ <node#0>, <node#1>, <node#2>, <node#3>, <node#4>, <node#5>, <node#6>, <node#7>, <node#8>, <node#9>, 189 weitere… ]
这可能是一个错误吗?
网络控制台没有显示来自 parseFromString 的任何错误。
(我最近收到了其他错误的日志,我无法将其与打开的选项卡联系起来。
A promise chain failed to handle a rejection.
Date: Sat Mar 14 2015 22:01:10 GMT+0100
Full Message: null
这有关系吗?)
最佳答案
问题是您正试图将 XML 解析为 HTML。两者在有效语法方面有很大不同。而不是使用:
aXML= parser.parseFromString(atext , "text/html");
您需要改用:
aXML= parser.parseFromString(atext , "text/xml");
此外,请确保 XML 有效,否则将无法解析。在您的示例中,它不是,但我认为这只是一个测试用例。
关于javascript - DOMParser.parseFromString(text ,"text/html") 仅解释前 ~21,500 字节。这是一个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053868/