node 使用xml2js模块解析xml

假设场景

使用一个游戏网站的api去获得角色的id:如下:

https://api.eveonline.com/eve/CharacterID.xml.aspx?names=Minmatar

在浏览器的地址栏直接输入上面地址能看到以下xml内容:


   2017-08-18 01:13:12
      
         
           
         
     
  2017-09-18 01:13:12

用node怎么发出请求然后解析呢?

解决

添加依赖:

var async = require('async');var request = require('request');

发出请求并解析:

var characterIdLookupUrl = 'https://api.eveonline.com/eve/CharacterID.xml.aspx?names=Minmatar' ;

var parser = new xml2js.Parser();

request.get(characterIdLookupUrl, function(err, request, xml) {
        if (err) return throw new error('请求失败'+err);
        parser.parseString(xml, function(err, parsedXml) {
          if (err) return throw new error('解析'+err);
           var characterId = parsedXml.eveapi.result[0].rowset[0].row[0].$.characterID;
           console.log( characterId );
        });
}

如何解析

关键:

parsedXml.eveapi.result[0].rowset[0].row[0].$.characterID

对照xml内容,不难看到这就像dom树读取一样,想再清楚些,console.log(parsedXml.eveapi)就更清晰了

done

如果觉得文章对你有点用的话,麻烦拿出手机,这里有一个你我都有的小福利(每天一次): 打开支付宝首页搜索“8601304”,即可领红包。谢谢支持

你可能感兴趣的:(node 使用xml2js模块解析xml)