如何使用Node.js从XML字符串中获取值

时间:2012-03-08 00:50:13

标签: xml node.js

假设你有这个xml:

<yyy:response xmlns:xxx='http://domain.com'> 
    <yyy:success> 
        <yyy:data>some-value</yyy:data> 
    </yyy:success> 
</yyy:response>

如何使用Node.js检索<yyy:data>之间的值?

感谢。

6 个答案:

答案 0 :(得分:10)

node-xml2js图书馆会帮助您。

var xml2js = require('xml2js');

var parser = new xml2js.Parser();
var xml = '\
<yyy:response xmlns:xxx="http://domain.com">\
    <yyy:success>\
        <yyy:data>some-value</yyy:data>\
    </yyy:success>\
</yyy:response>';
parser.parseString(xml, function (err, result) {
    console.dir(result['yyy:success']['yyy:data']);
});

答案 1 :(得分:4)

您可以使用camaro

轻松完成
const camaro = require('camaro')

const xml = `<yyy:response xmlns:xxx='http://example.com'> <yyy:success><yyy:data>some-value</yyy:data> </yyy:success></yyy:response>`

const template = {
    data: '//yyy:data'
}

console.log(camaro(xml, template)

输出:

{ data: 'some-value' }

答案 2 :(得分:1)

您无需解析数据提取,只需使用regexp:

  str = "<yyy:response xmlns:xxx='http://example.com'> <yyy:success><yyy:data>some-value</yyy:data> </yyy:success></yyy:response>";
  var re = new RegExp("<yyy:data>(.*?)</yyy:data?>", "gmi");

  while(res = re.exec(str)){ console.log(res[1])}

 // some-value

答案 3 :(得分:0)

首先,您需要一个库来解析XML。核心节点不提供XML解析。

您可以在此处找到它们的列表:https://github.com/joyent/node/wiki/modules#wiki-parsers-xml

我建议使用libxmljs

答案 4 :(得分:0)

使用XMLDOM库一种针对Node.js,Rhino和浏览器的W3C DOM的JavaScript实现。与W3C DOM level2完全兼容;并与level3兼容。支持DOMParser和XMLSerializer接口,例如在浏览器中。

答案 5 :(得分:-1)

有很多方法可以从xml文件中提取信息, 我使用xpath select方法来获取标记值。 https://cloudtechnzly.blogspot.in/2017/07/how-to-extract-information-from-xml.html