Javascript 如何在nodejs应用程序上将xml转换为json
我已经阅读了这篇文章,它清楚地解释了如何进行转换,但由于某些原因,它对我不起作用 让我与您分享代码:Javascript 如何在nodejs应用程序上将xml转换为json,javascript,json,xml,node.js,Javascript,Json,Xml,Node.js,我已经阅读了这篇文章,它清楚地解释了如何进行转换,但由于某些原因,它对我不起作用 让我与您分享代码: function parseXml(xml) { var dom = null; if (window.DOMParser) { try { dom = (new DOMParser()).parseFromString(xml, "text/xml"); } catch (e) { dom = null; } }
function parseXml(xml) {
var dom = null;
if (window.DOMParser) {
try {
dom = (new DOMParser()).parseFromString(xml, "text/xml");
}
catch (e) { dom = null; }
}
else if (window.ActiveXObject) {
try {
dom = new ActiveXObject('Microsoft.XMLDOM');
dom.async = false;
if (!dom.loadXML(xml)) // parse error ..
window.alert(dom.parseError.reason + dom.parseError.srcText);
}
catch (e) { dom = null; }
}
else
alert("cannot parse xml string!");
return dom;
}
这是尝试转换为json的示例:
var xml = '<e name="value">text</e>',
dom = parseXml(xml),
json = xml2json(dom);
var xml='text',
dom=parseXml(xml),
json=xml2json(dom);
我得到一个错误,说“窗口未定义”。当然,我这里并没有初始化窗口,我只是不知道该怎么处理它,因为我在nodejs应用程序中
您可以从文章中看到xml2json,因为它太长,无法在这里发布
如果您有任何建议,将不胜感激。…您的问题是,您正在访问
窗口
对象以获取DOMParser或Microsoft.XMLDom ActiveX对象。此代码旨在在浏览器中使用,所有问题都需要符合不同的浏览器类型等
因为您处于nodejs
,所以可以大大简化此过程。首先,您需要能够将XML解析为类XMLDom
对象的东西。有几个-我没有用过,但谷歌很快就找到了。还有其他人,所以看看周围,看看你觉得什么对你和你的项目是正确的
一旦将其安装到项目中,以下代码(未经测试)应该可以工作:
function parseXml(xml) {
var DOMParser = require('xmldom').DOMParser;
try {
return new DOMParser().parseFromString(xml, "text/xml");
}
catch (e) {
return null;
}
}
这将提供一个DOMParsed等价物,然后可以通过json2xml
读取