Node JS查找所有元素's属性

Node JS Find all element's attr

本文关键字:属性 元素 JS 查找 Node      更新时间:2023-09-26

我想找到每个元素的id,但我的"each"不起作用(没有metode each…)如何返回每个元素的ID?

   var libxmljs = require("libxmljs");
 var xml = ('/SomePath/filexmlxml');
   var xmlDoc2 = libxmljs.parseXmlString(xmlStr);
 fs.readFile(__dirname + '/filexml.xml', function (err, data) {

     var xmlStr = data.toString();
var id = xmlDoc2.get('Objects').get('Object').attr('id').value(); // It works and get the first element id = 'Title 1'

     xmlDoc2.get('Objects').get('Object').each(function () {
         var whatid = xmlDoc2.get('Objects').get('Object').attr('id').value();
         console.log('wasd: ' + whatid);  // Doesnt work - because of each.
     })  
 console.log('idss: ' + id); here I can see the only first's element's ID.

xmlDoc2.get('Objects')将返回一个Node对象。它没有每个方法。可以使用prevSibling、nextSibling方法遍历节点的同级。

或者更好地在元素上使用childNodes。

var children = xmlDoc2.get('Objects').childNodes();
children.forEach(function (child) {
  var whatid = child.get('Object').attr('id').value();
  console.log('wasd: ' + whatid);
});