如何在JavaScript node.js中将xml文件解析为数组

如何在JavaScript node.js中将xml文件解析为数组,javascript,arrays,xml,node.js,Javascript,Arrays,Xml,Node.js,我是初学者,在Node.js中将数据从xml文件解析到数组时遇到问题 来自xml的数据: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <record> <Name>Apple</Name> <Code>A

我是初学者,在Node.js中将数据从xml文件解析到数组时遇到问题

来自xml的数据:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <record>
       <Name>Apple</Name>
       <Code>AP</Code>
       <Price>2,5</Price>
    </record>
    <record>
       <Name>Kiwi</Name>
       <Code>KI</Code>
       <Price>1,5</Price>
    </record>
</xml>
我希望数组是这样的:

var array = [
    { Name: 'Apple', Code: 'AP', Price: '2,5'},
    { Name: 'Kiwi', Code: 'KI', Price: '1,5'}
];

@编辑-我们更接近了

我尝试使用xml2js npm,结果是:

 {                                                            
  "xml": {                                                   
    "$": {                                                   
      "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance
    },                                                       
    "record": [                                              
      {                                                      
        "Name": [                                            
          "Apple"                                            
        ],                                                   
        "Code": [                                            
          "AP"                                               
        ],                                                   
        "Price": [                                           
          "2,5"                                              
        ]                                                    
      },                                                     
      {                                                      
        "Name": [                                            
          "Kiwi"                                             
        ],                                                   
        "Code": [                                            
          "KI"                                               
        ],                                                   
        "Price": [                                           
          "1,5"                                              
        ]                                                    
      }                                                      
    ]                                                        
  }                                                          
}
我当前的代码:

var fs = require('fs');
var parseString = require('xml2js').parseString;

fs.readFile('test_data.xml', function(err, data){
    parseString(data, function (err, result)
    {
       console.log(JSON.stringify(result, null, 2));
    });
});

查看npm上众多XML解析器包中的一个

例如:

编辑: 要将所有功能集于一身,请执行以下操作:

function loadXML(cb) {
  fs.readFile('test_data.xml', function(err, data){
    parseString(data, function (err, result) {
      cb(result.xml.record)
    });
  });
}

loadXML(function(yourRecods) {
  // do whatever
});

@DiPix可以发布什么
JSON.stringify(result,null,2)返回?只需使用
var records=result.xml.record和你得到的数组tank you:)应该是足够的。还有一件事,我怎样才能将这个函数赋值给某个变量?我尝试过:
var xmlData=fs.readFile('data-xml/test_data.xml',function(err,data){parseString(data,function(err,result){return result.xml.record;});})但当我尝试使用时它是未定义的:/Check my edit,您需要一个带有回调作为参数的函数
var fs = require('fs');

fs.readFile('/etc/data.xml', (err, data) => {
  if (err) throw err;
  console.log(data);
});
function loadXML(cb) {
  fs.readFile('test_data.xml', function(err, data){
    parseString(data, function (err, result) {
      cb(result.xml.record)
    });
  });
}

loadXML(function(yourRecods) {
  // do whatever
});