我在nodeJs中使用xml2json库。我有 xml:
<SchedulingModel >
<Jobs>
<Job Id="1">
<Operations>
</Operations>
</Job>
<Job Id="2">
<Operations>
</Operations>
</Job>
<Job Id="3">
<Operations>
</Operations>
</Job>
<Job Id="4">
<Operations>
</Operations>
</Job>
<Job Id="5">
<Operations>
</Operations>
</Job>
</Jobs>
</SchedulingModel>
我正在尝试解析此 xml:
const parser = new xml2js.Parser();
parser.parseString(plannerXML , (err, result) => {
console.log(result["SchedulingModel"]["Jobs"]);
});
但是在解析结果之后,我在Jobs数组中只有一个对象
console.log(result);
{ SchedulingModel:
Jobs: [ [Object] ]
}
谁能说一下哪里出了问题吗? 我需要此 xml 中的所有对象。
最佳答案
我通常使用camaro用于从 xml 到 json 的转换,轻松更改所需的结果。
您可以尝试使用以下示例(例如,向操作添加一些文本):
const xml = '<SchedulingModel><Jobs><Job Id="1"><Operations>a</Operations></Job><Job Id="2"><Operations>b</Operations></Job><Job Id="3"><Operations>c</Operations></Job><Job Id="4"><Operations>d</Operations></Job><Job Id="5"><Operations>e</Operations></Job></Jobs></SchedulingModel>'
const temp = {
SchedulingModel: ['/SchedulingModel/Jobs/Job', {
Id: '@Id',
Operations: 'Operations'
}]
}
const transform = require('camaro')
const results = transform(xml, temp)
console.log(JSON.stringify(results, null, 2))
回应:
{
"SchedulingModel": [
{
"Id": "1",
"Operations": "a"
},
{
"Id": "2",
"Operations": "b"
},
{
"Id": "3",
"Operations": "c"
},
{
"Id": "4",
"Operations": "d"
},
{
"Id": "5",
"Operations": "e"
}
]
}
关于javascript - xml2json 从数组返回 1 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939384/