我使用以下代码解析xml
var convert = require('xml-js');
var xml = require('fs').readFileSync('./2B2DE7DD-FD11-4F2C-AF0D-A244E5977CBA.xml', 'utf8');
result = convert.xml2json(xml, { spaces: 4});
结果抛出以下JSON
{
"declaration": {
"attributes": {
"version": "1.0",
"encoding": "utf-8"
}
}
}
但是,如果我尝试使用result["declaration"]
访问“声明”,则控制台会返回undefined
我应该使用其他解析器,还是获取值有问题?
答案 0 :(得分:0)
result
的数据类型是String,而不是JavaScript对象。也就是说,convert.xml2json(xml, { spaces: 4});
语句将返回JSON字符串,而不是JS对象。
要访问declaration
,您需要将JSON字符串解析为object:
var convert = require('xml-js');
var xml = require('fs').readFileSync('./2B2DE7DD-FD11-4F2C-AF0D-A244E5977CBA.xml', 'utf8');
result = convert.xml2json(xml, { spaces: 4});
result = JSON.parse(result);
答案 1 :(得分:0)
如果要返回对象,请使用xml2js
代替xml2json
。
result = convert.xml2js(xml, options); // to convert xml text to javascript object
result = convert.xml2json(xml, options); // to convert xml text to json text