假設(shè)場景
使用一個游戲網(wǎng)站的api去獲得角色的id:如下:
https://api.eveonline.com/eve/CharacterID.xml.aspx?names=Minmatar
在瀏覽器的地址欄直接輸入上面地址能看到以下xml內(nèi)容:
<eveapi version="2">
<currentTime>2017-08-18 01:13:12</currentTime>
<result>
<rowset name="characters" key="characterID" columns="name,characterID">
<row name="Minmatar" characterID="650389131"/>
</rowset>
</result>
<cachedUntil>2017-09-18 01:13:12</cachedUntil>
</eveapi>
用node怎么發(fā)出請求然后解析呢帐要?
解決
添加依賴:
var async = require('async');var request = require('request');
發(fā)出請求并解析:
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 );
});
}
如何解析
關(guān)鍵:
parsedXml.eveapi.result[0].rowset[0].row[0].$.characterID
對照xml
內(nèi)容惭聂,不難看到這就像dom樹讀取一樣,想再清楚些蘑拯,console.log(parsedXml.eveapi)
就更清晰了
done
如果覺得文章對你有點用的話,麻煩拿出手機兜粘,這里有一個你我都有的小福利(每天一次): 打開支付寶首頁搜索“8601304”申窘,即可領(lǐng)紅包。謝謝支持