用纯JavaScript编写的XML解析器,用于嵌入式环境 [英] XML parser written in pure javascript for embedded environments
问题描述
我正在寻找一种解析器,该解析器可以在无法访问 document
, DOMParser
或任何其他浏览器扩展程序的javascript环境中运行.javascript应用程序可以在node.js的浏览器(IE,Firefox,Chrome,Safari ...)中运行,但它注定主要运行在V8或SpiderMonkey环境中.该环境是分布式的,不支持常规的XML解析器,而且我无法从javascript解析包含有效XML的字符串.
I'm looking for a parser which can run in a javascript environment where there is no access to document
, DOMParser
or any other browser extension. The javascript application can run in browsers (IE, Firefox, Chrome, Safari...) in node.js but it is destined to run mainly embedded in a V8 or in a SpiderMonkey environment. The environment is distributed without support for the usual XML parsers and I am unable to parse a string containing valid XML from javascript.
所有依赖于诸如 DOMParser
和 ActiveXObject
之类的浏览器扩展的库都将失败,并显示诸如 ReferenceError:DOMParser未定义
这样的消息.strong>.
All libraries which rely on browser extensions like DOMParser
and ActiveXObject
fail with messages like ReferenceError: DOMParser is not defined
.
不需要访问文件系统(我需要从字符串解析为类似DOM的结构).
Access to file system is not necessary (I need to parse from string to a DOM-like structure).
推荐答案
marknote 如此处所述,a>是正确的解决方案(感谢Pekka웃).从远程位置加载时,该库使用XMLHttpRequest,但从字符串进行解析时,它集成了一个用javascript编写的独立XML解析器,这使其适合在嵌入式解释器中使用:
marknote is the right solution as noted here (thanks to Pekka 웃). The library uses XMLHttpRequest when loading from remote locations, but when parsing from a string it integrates a standalone XML parser written in javascript, which makes it suitable for use in embedded interpreters :
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
这篇关于用纯JavaScript编写的XML解析器,用于嵌入式环境的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!