У меня есть какой-то 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"
}
]
}
Как я могу убедиться, что даже при наличии только 1 Transaction
элементав XML, что он будет выводить в массив?
Есть ли параметр, который мне нужно передать в мой анализатор или мне нужно переформатировать мой XML?