我试图使用模块xml2js将node.js中的
XML转换为
JSON.访问变量时如何处理命名空间别名?
以下代码转换我的文件(sampleWithNamespaces.xml)
var fs = require('fs'),xml2js = require('xml2js'); var parser = new xml2js.Parser(); fs.readFile('sampleWithNamespaces.xml',function (err,data) { parser.parseString(data,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
如果我没有命名空间别名,我可以使用符号结果[‘d:name’]而不是result.name来访问’name’属性.我想我的问题是,我这样做是正确的吗?
我有read“如果一个元素有一个名称空间别名,别名和元素是使用”$“连接的.例如,ns:element变为ns $element”如果我这样做,我可以读取该属性作为结果.d $名称.如果我走这条路,我怎么会这样做?