【发布时间】:2021-03-16 14:12:54
【问题描述】:
我正在使用某些服务进行跟踪功能。它以 XML 格式提供响应。为了解析 XML 响应,我决定使用 fast-xml-parser 包。
但是有一个问题:
当我只收到一项回复时,它运作良好,但如果我有多个喜欢:
<xsd:events xmlns:xsd="http://somelink/xsd">
<event id=“1234”>
<packetCode>ABC123</packetCode>
<eventCode>EVENT_CODE</eventCode>
<eventDate>2020-12-03T14:34:09.000+02:00</eventDate>
<stateCode>STATUS_CODE</stateCode>
<eventSource zip=“123">Some place</eventSource>
</event>
<event id=“456”>
<packetCode>DEF456</packetCode>
<eventCode>EVENT_CODE</eventCode>
<eventDate>2020-12-03T14:40:44.000+02:00</eventDate>
<stateCode>STATUS_CODE</stateCode>
<eventSource zip=“123">Some place</eventSource>
</event>
</xsd:events>
之后
const xmlParser = require('fast-xml-parser');
xmlParser.parse(exampleXml);
我得到一个只有最后一个元素的对象:
{
'xsd:events': {
event: {
packetCode: 'DEF456',
eventCode: 'EVENT_CODE',
eventDate: '2020-12-03T14:40:44.000+02:00',
stateCode: 'STATUS_CODE',
eventSource: 'Some place',
}
}
}
但我希望得到这两个事件的数组。最好让它看起来像:
{
'xsd:events': [{/* event data */}, {{/* event data */}]
}
我做错了什么,也许需要一些选项或其他东西?寻求帮助和建议。
【问题讨论】:
标签: javascript xml xml-to-json fast-xml-parser