解析Web Worker中的XML

use*_*813 7 javascript xml web-worker domparser

我一直在使用DOMParser对象将文本字符串解析为XML树.但是,它在Web Worker的上下文中不可用(当然,也不是document.ELEMENT_NODE或者需要的各种其他常量).还有其他办法吗?

请注意,我不想操纵当前页面的DOM.XML文件不包含HTML元素或任何类型的元素.实际上,我根本不想触摸文档对象.我只想提供如下文本字符串:

<car color="blue"><driver/></car>
Run Code Online (Sandbox Code Playgroud)

...并找回合适的树形结构和遍历它的方法.我也不关心模式验证或任何花哨的东西.我知道<SCRIPT>的XML,许多人可能觉得它很有用(因此我在这里链接到它),但是它的许可并不适合我.我不确定jQuery是否包含XML解析器(我对这个东西很新),但即使它确实(并且它可以在Worker中使用),我也不会包含额外的~50K代码行这个功能.

我想我可以在JavaScript中编写一个简单的XML解析器,我只是想知道我是否错过了更快的选项.

Mat*_*ieu 6

根据规范

在此规范的此版本中,DOM API(节点对象,文档对象等)不可用于工作者.

我想这就是为什么DOMParser不可用,但我真的不明白为什么做出这个决定.(在WebWorker中获取和处理XML文档似乎不合理)

但您可以导入其他可用工具:"使用JavaScript进行跨平台XML解析"

  • 显然,像Firefox这样的浏览器必须使用XML解析器中的主线程,来源:http://w3-org.9356.n7.nabble.com/Limited-DOM-in-Web-Workers-td44284.html (2认同)

小智 5

此时我喜欢分享我的解析器:https://github.com/tobiasnickel/tXml

使用其tXml()方法,您可以将字符串解析为对象,并且只需0.5kb缩小+ gzipped