使用 xpath.js 在 Node JS 中解析 XML



我的XML看起来像这样:

<ns2:OrderList>
  <order order_id="123" item_name="123"/>
  <order order_id="234" item_name="1233"/>
  <order order_id="2357" item_name="1234"/>
  ......
</ns2:OrderList>

我想使用 XPath.js 来自 npjms。
如何获取具有"order_id"值的数组????

如果你想使用xpath,这样的东西应该可以解决问题.js(不过你也需要xmldom进行解析(。

const Dom = require('xmldom').DOMParser;
const select = require('xpath.js');
const xml = '<ns2:OrderList> <order order_id="123" item_name="123"/> <order order_id="234" item_name="1233"/> <order order_id="2357" item_name="1234"/> </ns2:OrderList>¬';
const doc = new Dom().parseFromString(xml);
const nodes = select(doc, '//order');
const orderIds = nodes.map((node) => node.getAttribute('order_id'));
console.log(orderIds);
var select = require('xpath.js')
    , dom = require('xmldom').DOMParser
var xml = `<ns2:OrderList>
            <order order_id="123" item_name="123"/>
            <order order_id="234" item_name="1233"/>
            <order order_id="2357" item_name="1234"/>
           </ns2:OrderList>`;

var doc = new dom().parseFromString(xml);    
var nodes = select(doc, "//order/@order_id");
var orderIds = [];
nodes.forEach(function(node) {
    orderIds.push(node.nodeValue);
});
console.log(orderIds);

最新更新