【问题标题】:XML parser written in pure javascript for embedded environments [closed]用纯 JavaScript 编写的用于嵌入式环境的 XML 解析器 [关闭]
【发布时间】:2014-01-08 16:17:57
【问题描述】:

我正在寻找一个可以在无法访问documentDOMParser 或任何其他浏览器扩展的javascript 环境中运行的解析器。 javascript 应用程序可以在 node.js 中的浏览器(IE、Firefox、Chrome、Safari...)中运行,但它注定主要嵌入在 V8 或 SpiderMonkey 环境中运行。该环境的分发不支持通常的 XML 解析器,我无法解析包含来自 javascript 的有效 XML 的字符串。

所有依赖于 DOMParserActiveXObject 等浏览器扩展的库都会失败,并显示类似 ReferenceError: DOMParser is not defined 的消息。

不需要访问文件系统(我需要从字符串解析为类似 DOM 的结构)。

【问题讨论】:

  • 谷歌搜索 javascript parse xml 显示很多无用的结果(使用浏览器功能),但也有一些有用的结果
  • 这里有用的答案:stackoverflow.com/a/7373003/1388017
  • 另外stackoverflow.com/a/9056881/187606 也不是完全它是一个完整的本机实现,但它看起来像一个
  • xhr 的 responseXML 是一个纯解析的 DOM。顺便说一句,没有浏览器解析器是什么意思?
  • @cocco 一个不使用浏览器扩展的解析器,如 ActiveXObject 或 DOMParser。简单地说就是提供一个纯 javascript 实现。

标签: javascript dom xml-parsing


【解决方案1】:

marknotehere 指出的正确解决方案(感谢 Pekka 웃)。该库在从远程位置加载时使用 XMLHttpRequest,但在从字符串解析时,它集成了一个用 javascript 编写的独立 XML 解析器,这使其适用于嵌入式解释器:

var text="<note>";
text=text+"<content>whatever blablabla</content>";
text=text+"</note>";


var parser = new marknote.Parser();
var doc = parser.parse(text);

native.log(doc.toString()); // show the formatted XML

【讨论】:

  • 现在有many纯js解决方案。
【解决方案2】:

Checkout jQuery.parseXML - 一个基本的 XML 解析器。

【讨论】:

  • 实际上这正是 OP 所排除的:根据 JQuery 源:new DOMParser(); 这是一个浏览器扩展。 Jquery 只是隐藏了解析器实现(ActiveXObject 和 DOMParser)。
猜你喜欢
  • 2012-02-28
  • 2011-08-17
  • 2011-06-25
  • 2015-03-01
  • 2010-11-10
  • 2023-03-08
  • 2011-01-08
  • 2010-12-21
  • 1970-01-01
相关资源
最近更新 更多