有人知道如何在不使用 jQuery 或其他 DOM 库的情况下将有效的 XML 字符串转换为 JavaScript 对象吗?
我只想在 JavaScript 中这样做的原因是因为这都是服务器端的,与特定的浏览器没有任何关系。
再次强调——这不是客户端 JavaScript。它是服务器端的。
谢谢,
道格
有人知道如何在不使用 jQuery 或其他 DOM 库的情况下将有效的 XML 字符串转换为 JavaScript 对象吗?
我只想在 JavaScript 中这样做的原因是因为这都是服务器端的,与特定的浏览器没有任何关系。
再次强调——这不是客户端 JavaScript。它是服务器端的。
谢谢,
道格
我尝试查看 Webcrossing,但似乎他们没有该产品的在线文档。我想您必须付费才能获得文档,这有点令人惊讶,因为如今即使是商业产品也往往具有免费的在线文档-开发人员将如何评估产品?
如果您确实可以访问文档(由于您/您的雇主为此付费,您应该这样做),我建议您在文档中查找如何处理 XML。Webcrossing 声称具有内置的 XMLRPC 功能,这应该意味着内置的 XML 解析功能。
大多数内置此类东西的 javascript 引擎倾向于实现一个 DOM 解析器,它将 XML 转换为 DOM 对象。这样做的好处是您可以使用熟悉的 DOM 操作,如getElementById()
、getElementsByTagName()
等element.children
来遍历和处理 XML 文档。这样做的缺点是需要使用上面冗长的 DOM 操作来遍历和处理 XML 文档。
但是,如果 Webcrossing 不提供内置的 XML 解析器(这不太可能,因为它支持 XMLRPC),那么下一个最佳选择是通过 node.js 模块进行移植。这里列出了一些与 XML 相关的模块:
https://github.com/joyent/node/wiki/modules#wiki-parsers-xml
上面的列表并不详尽。如需完整列表,您可以在此处搜索 npm 注册表:
从谷歌上的快速搜索来看,在我看来你最好的选择是移植这个模块(顺便说一下,它没有在 wiki 中列出):
https://github.com/nfarina/xmldoc
xmldoc 模块的独特之处在于它被设计为在节点和 Web 浏览器中工作。所以它可能有更好的机会被移植。
在任何情况下,请先通读您的文档(或联系 Webcrossing 的技术支持)。
我怀疑评论中的约翰·保罗·卡德纳斯 (John Paul Cardenas) 的片段是你最接近的。希望您能在您的特定服务器端环境中找到一个 DOM 库,我不熟悉您描述的平台。
假设您可以找到类似于 DOMParser 的东西(有关 JS 中 XML 解析的更多信息,请参阅http://www.w3schools.com/dom/dom_parser.asp),这是我所知道的最好的入门方式。
当然,您将通过遍历 DOM 树来手动解析代码。那是因为没有将 XML 转换为 JSON 的标准方法。它们并不完全直接兼容。例如,XML 节点具有属性;JSON 没有。如何处理细微差别取决于您的特定 XML 模式以及特定项目的需求。