首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点中的DOMParser

节点中的DOMParser
EN

Stack Overflow用户
提问于 2021-03-06 00:41:51
回答 1查看 479关注 0票数 0

我有一个依赖于DOMParser解析XML的库实现。这在浏览器中工作得很好,但显然不能与Node一起工作。我尝试将JSDOM与他们自己的DOMParser一起使用,但实际上在实现上存在细微的差异,导致我的测试失败。

我正在寻找替代域处理程序,特别是htmlparser2。我需要在基本级别上做的是在htmlparser2中复制此行为:

代码语言:javascript
复制
const parser = new DOMParser();
const root: Document = parser.parseFromString(xmlString, "application/xml");

我已经用htmlparser2尝试过了:

代码语言:javascript
复制
const res = parseDOM(xmlString, { xmlMode: true });

但这将返回类型: Node[],而不是文档。我无论如何也找不到从htmlparser2中生成文档的文档,也找不到将我的Node[]转换为文档的方法。

问题似乎出在我的浏览器测试中(在Karma测试中模拟浏览器),测试失败是因为JSDom代码。

即使使用这样的代码:

代码语言:javascript
复制
let parser;
if(true){
    parser = new DOMParser();
}else{
    const JsDomParser = new JSDOM().window.DOMParser;
    parser = new JsDomParser();
}

测试失败。我实际上必须注释掉JSDOM的东西才能让我的测试通过。也许浏览器有不兼容的地方?

作为DOMParser替换的一部分,任何帮助实现这一点的人都会非常感激。

EN

回答 1

Stack Overflow用户

发布于 2021-03-06 02:40:02

在Saxon-JS中,我们使用来自https://github.com/xmldom/xmldom的xml实现,它对我们来说工作得很好,尽管我们最近没有与其他选项进行比较,而且我们的用法有点特殊,例如,它主要是只读的。此外,我们实际上并没有使用它来解析,因为我们使用了github/isaacs/sax-js --并且我们调整了这两个产品,以提高边缘情况下的XML一致性级别。

我认为我们在node.js下的xmldom和浏览器中的xmldom实现之间没有遇到任何兼容性问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66496358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档