javascript - DOMParser.parseFromString(text ,"text/html") 仅解释前 ~21,500 字节。这是一个错误吗?

标签 javascript firefox html-parsing promise domparser

我有 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/

相关文章:

php - 使用 Javascript 跟踪每个 div 独有的函数

javascript - 调用外部库中的函数时出现引用错误 - 仅限 Firefox

java - 使用 jsoup 库解析 html 元标记

java - 通过 java 在网站上进行搜索

javascript - Bootstrap Datepicker 与 IE8 - 对象不支持此属性或方法

javascript - 是否可以在不附加 ".js"扩展名的情况下在 Dojo 中加载脚本

php - 与守护程序文件 (JAXL) 交互

html - Firefox 不以表 :middle; 为中心

jquery - 仅限 OSX Firefox 中的 CSS 混合混合模式错误

php - PHP 中的 DOMDocument