***问题解决了:json.stringify是问题..它消失后更容易处理。
var DBName = result['Document']['SW.Blocks.GlobalDB']['AttributeList']['Name'];
我有一个xml文件,该文件描述了PLC的数据块,并希望通过JS获取特定值。 我使用xml2js模块进行了转换,因此我可以使用json对象。
{
"Document": {
"Engineering": {
"$": {
"version": "V15"
}
},
"SW.Blocks.GlobalDB": {
"$": {
"ID": "0"
},
"HeaderAuthor": "",
"HeaderFamily": "",
"HeaderName": "",
"HeaderVersion": "0.1",
"Interface": {
...
...
"Name": "datentypen",
"Number": "6",
"ParameterModified": {
"_": "2018-09-05T11:49:37.0862092Z",
"$": {
"ReadOnly": "true"
}
},
}
}
我想打印出“名称”和“数字”,它们是“ AttributeList”的一部分。 那么如何处理“ SW.Blocks.GlobalDB”呢?
获取错误:“ TypeError:无法读取未定义的属性'SW'”
var fs = require('fs');
var xml2js = require('xml2js');
var xml = fs.readFileSync('datentypen.xml');
var parser = new xml2js.Parser({explicitArray: false});
parser.parseString(xml, function(err, result) {
if (err) {
console.error('xml2js.parse error: ',err);
} else {
var injson = JSON.stringify(result,null,3);
console.log(injson);
// var injson2 = JSON.parse(injson);
// var DBnummer = injson.Document.SW.Blocks.GlobalDB.AttributeList["Name","Number"];
// console.log(DBNummer);
};
});
我读了很多关于这个主题的书,但是没有找到具体的答案。 当我写[“ SW.Blocks.GlobalDB”]时,出现关于[的错误。
答案 0 :(得分:0)
您可以尝试使用键值对读取JSON数组吗?我遇到过类似的问题,但是编程语言不同。