我正在嘗試使用模塊xml2js將XML轉換爲node.js中的JSON。如何在訪問變量時處理命名空間別名?XML to JSON - 處理JavaScript中的xml名稱空間和別名
後續的代碼轉換我的文件(sampleWithNamespaces.xml)
var fs = require('fs'),
xml2js = require('xml2js');
var parser = new xml2js.Parser();
fs.readFile('sampleWithNamespaces.xml', function (err, data) {
parser.parseString(data, function (err, result) {
console.dir(result);
console.log('Done');
});
});
sampleWithNamespaces.xml:
<d:student xmlns:d='http://www.develop.com/student'>
<d:id>3235329</d:id>
<d:name>Jeff Smith</d:name>
<d:language>JavaScript</d:language>
<d:rating>9.5</d:rating>
</d:student>
輸出:
$ node xml2jsTest.js
{ '@': { 'xmlns:d': 'http://www.develop.com/student' },
'd:id': '3235329',
'd:name': 'Jeff Smith',
'd:language': 'JavaScript',
'd:rating': '9.5' }
Done
我可以訪問 'name' 屬性通過使用符號result['d:name']
而不是result.name
如果我沒有t他命名空間別名。我想我的問題是,我是否以正確的方式做這件事? 「如果一個元素有一個名稱空間別名,別名和元素使用」$「連接,例如,ns:元素變成ns $元素」如果我這樣做,我可以讀取屬性爲result.d$name
。如果我走了這條路,我會怎麼做呢?