簡體   English   中英

XML屬性在Node.js xml2js中不起作用

[英]XML Attribute not working in Node.js xml2js

我正在嘗試使用Node.js和xml2js解析XML。 在文檔中說$是訪問屬性的字符。 在我看來,它似乎不起作用。

對象result.ApiResponse.CommandResponse可以正常工作。 但是,我之后提出的任何內容都不確定。

這是我的代碼,它說$是未定義的:

var xml2js = require('xml2js');
var util = require('util');

var parser = new xml2js.Parser();
var xml = '<ApiResponse Status="OK"><Errors/><Warnings/><RequestedCommand>namecheap.domains.check</RequestedCommand><CommandResponse Type="namecheap.domains.check"><DomainCheckResult Domain="us.xyz" Available="true" ErrorNo="0" Description="" IsPremiumName="true" PremiumRegistrationPrice="13000.0000" PremiumRenewalPrice="13000.0000" PremiumRestorePrice="65.0000" PremiumTransferPrice="13000.0000" IcannFee="0.0000" EapFee="0.0000"/></CommandResponse><Server>PHX01APIEXT01</Server><GMTTimeDifference>--5:00</GMTTimeDifference><ExecutionTime>4.516</ExecutionTime></ApiResponse>';

parser.parseString(xml, function (err, result) {

console.log(util.inspect(result.ApiResponse.CommandResponse.DomainCheckResult.$.Available, false, null))    

});

這是console.log(result):

{ ApiResponse: 
   { '$': { Status: 'OK' },
     Errors: [ '' ],
     Warnings: [ '' ],
     RequestedCommand: [ 'namecheap.domains.check' ],
     CommandResponse: 
      [ { '$': { Type: 'namecheap.domains.check' },
          DomainCheckResult: 
           [ { '$': 
                { Domain: 'us.xyz',
                  Available: 'true',
                  ErrorNo: '0',
                  Description: '',
                  IsPremiumName: 'true',
                  PremiumRegistrationPrice: '13000.0000',
                  PremiumRenewalPrice: '13000.0000',
                  PremiumRestorePrice: '65.0000',
                  PremiumTransferPrice: '13000.0000',
                  IcannFee: '0.0000',
                  EapFee: '0.0000' } } ] } ],
     Server: [ 'PHX01APIEXT01' ],
     GMTTimeDifference: [ '--5:00' ],
     ExecutionTime: [ '4.516' ] } }

看起來CommandResponseDomainCheckResult實際上是數組,因此在深入研究數據之前,需要使用[0]訪問它們的第一個元素。

console.log(util.inspect(
    result.ApiResponse.CommandResponse[0].DomainCheckResult[0].$.Available,
    false, null
))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM