2015-02-08 84 views
0

我有一个node.js应用程序,它从远程URL获取一些xml以在内部使用。但是JavaScript更适合json数据,所以我一直在通过调用服务器上的php脚本通过中间服务器获取xml,该脚本在返回之前自己获取xml并将其转换为json(p)它到我的node.js应用程序。xml to json in javascript

但我宁愿避免中间服务器的需要,以减少整个事件的风险,例如,中间服务器停机。我宁愿将xml直接读入我的node.js应用程序,并将其转换为本地的json。

相关线路中的PHP脚本是:

$xml = simplexml_load_file($url); 
$json = json_encode($xml); 

这完美的作品,每次创建从XML完美JSON。很好很简单。

我已经尝试过各种'xml2json'功能,但都没有工作,或者他们似乎需要浏览器环境。

当然,有一个公认的和值得信赖的javascript功能,它能很好地将xml转换为json吗?它肯定是一件很普通的事情。

事实上,这将是理想的是在node.js中和HTML内,这工作,因为我有应用程序的两个版本的解决方案 - 一个在node.js中,一个在HTML,宁可分享相同的代码比每个都有不同的解决方案。

谢谢!

+0

这里接受的答案看起来像一个很好的解决方案: http://stackoverflow.com/questions/1773550/convert-xml-to-json-and-back-using-javascript – kakoma 2015-02-08 08:31:04

+1

PHP的方式恰好不是因为'json_encode'而工作,而是因为SimpleXML对象的魔力。 'json_encode'只能对对象进行编码,而SimpleXML碰巧将所有东西都神奇地显示为对象属性。您真正需要问的问题是如何将XML文件转换为Javascript对象结构,然后使用标准的JSON编码函数可以轻松对其进行编码;我建议你相应地更新你的问题标题。 – deceze 2015-02-08 08:32:16

+0

相关的东西,你想要http://stackoverflow.com/questions/5672151/any-recommendation-for-xml-to-json-for-node-js可能会这对你有用 – 2015-02-08 12:02:03

回答

1

由于您已经在运行节点,请检查npm。我用ee-xml-to-json没有问题;虽然,我还没有尝试过使用它的客户端。如果您真的想要在客户端执行此操作,您可以使用browserify

祝你好运:)

+0

因为我在寻找一个独立的解决方案,它并没有绑定到node.js(我也想在我的html中使用它),所以我没有真正考虑过node.js包。但是你的回答让我重新思考,这就是我现在所做的。正如你所说,我已经在运行节点,所以在节点中,我可以直接调用xml2json函数,而在html中,我可以将XMLHttpRequest直接调用到我的节点服务器。尽管这仍然是一个中介,但我仍然需要运行它。我使用的是https://www.npmjs.com/package/xml2json,看起来不错。谢谢。 – drmrbrewer 2015-02-09 08:05:30