【发布时间】:2019-10-18 10:11:46
【问题描述】:
我有一些 XML,我希望它输出到一个数组中。但是当只有一项存在时,xml2js 将一项输出到一个对象。当有多个项目时,它作为一个数组输出。为了一致性,我如何强制它成为一个数组?
我的 XML 如下所示:
const xml = `<Shift>
<Transaction>
<Currency>GBP</Currency>
<Amount>24.50</Amount>
</Transaction>
</Shift>`
parseStringPromise(xml).then(json => console.log(JSON.stringify(json)))
你可以看到输出为:
{
"Transaction": {
"Currency": "GBP",
"Amount": "24.50"
}
}
但通常有多个交易。所以通常 XML 看起来像这样:
const xml = `<Shift>
<Transaction>
<Currency>GBP</Currency>
<Amount>24.50</Amount>
</Transaction>
<Transaction>
<Currency>GBP</Currency>
<Amount>25.50</Amount>
</Transaction>
<Transaction>
<Currency>GBP</Currency>
<Amount>26.50</Amount>
</Transaction>
<Transaction>
<Currency>GBP</Currency>
<Amount>27.50</Amount>
</Transaction>
</Shift>`
parseStringPromise(xml).then(json => console.log(JSON.stringify(json)))
像这样输出到数组中
{
"Transaction": [
{
"Currency": "GBP",
"Amount": "24.50"
},
{
"Currency": "GBP",
"Amount": "25.50"
},
{
"Currency": "GBP",
"Amount": "26.50"
},
{
"Currency": "GBP",
"Amount": "27.50"
}
]
}
如何确保即使 xml 中只有 1 个 Transaction 项,它也会输出到数组?
我需要将选项传递给解析器还是需要重新格式化 XML?
【问题讨论】:
标签: javascript node.js json xml parsing