Javascript node.js使用xml2js将xml转换为json

Javascript node.js使用xml2js将xml转换为json,javascript,json,node.js,xml,xml2js,Javascript,Json,Node.js,Xml,Xml2js,我正在使用node.js包xml2js将xml转换为json。 文件如下: 我的问题是这些xml的属性没有正确转换 具有多个事件的XML示例 访问JSON元素 在正确的转换之后,我希望通过事件[1]访问JSON元素。$.id 但所有尝试都不成功: events.event-->未定义 events.event.$-->未定义 事件。$-->未定义 我现在的问题是:如何正确地将xml转换为JSON并正确地访问元素 Javascript从0开始,您应该得到事件[0]。事件[0].$.id 此外,

我正在使用node.js包xml2js将xml转换为json。 文件如下:

我的问题是这些xml的属性没有正确转换

具有多个事件的XML示例 访问JSON元素 在正确的转换之后,我希望通过事件[1]访问JSON元素。$.id

但所有尝试都不成功:

  • events.event-->未定义
  • events.event.$-->未定义
  • 事件。$-->未定义

我现在的问题是:如何正确地将xml转换为JSON并正确地访问元素

Javascript从0开始,您应该得到事件[0]。事件[0].$.id

此外,您还可以尝试使用另一个包(),简单而轻松地更改所需的结果

例如:

const xml = '<events><event id="E0-001-098932239-8"></event><event id="E0-001-105389601-2"></event><event id="E0-001-104342965-3"></event><event id="E0-001-104830349-3"></event><event id="E0-001-105374979-6"></event><event id="E0-001-105389620-7"></event><event id="E0-001-104247759-2"></event><event id="E0-001-104342949-5"></event></events>'

const temp = {
    events: ['/events/event', {
        id: '@id'
    }]
}

const transform = require('camaro')
const results = transform(xml, temp)

console.log(JSON.stringify(results, null, 2))

Javascript从0开始,您应该得到事件[0]。事件[0].$.id

此外,您还可以尝试使用另一个包(),简单而轻松地更改所需的结果

例如:

const xml = '<events><event id="E0-001-098932239-8"></event><event id="E0-001-105389601-2"></event><event id="E0-001-104342965-3"></event><event id="E0-001-104830349-3"></event><event id="E0-001-105374979-6"></event><event id="E0-001-105389620-7"></event><event id="E0-001-104247759-2"></event><event id="E0-001-104342949-5"></event></events>'

const temp = {
    events: ['/events/event', {
        id: '@id'
    }]
}

const transform = require('camaro')
const results = transform(xml, temp)

console.log(JSON.stringify(results, null, 2))

完美答案。非常感谢你!完美答案。非常感谢你!
const xml = '<events><event id="E0-001-098932239-8"></event><event id="E0-001-105389601-2"></event><event id="E0-001-104342965-3"></event><event id="E0-001-104830349-3"></event><event id="E0-001-105374979-6"></event><event id="E0-001-105389620-7"></event><event id="E0-001-104247759-2"></event><event id="E0-001-104342949-5"></event></events>'

const temp = {
    events: ['/events/event', {
        id: '@id'
    }]
}

const transform = require('camaro')
const results = transform(xml, temp)

console.log(JSON.stringify(results, null, 2))
{
    "events": [
        {
            "id": "E0-001-098932239-8"
        },
        {
            "id": "E0-001-105389601-2"
        },
        {
            "id": "E0-001-104342965-3"
        },
        {
            "id": "E0-001-104830349-3"
        },
        {
            "id": "E0-001-105374979-6"
        },
        {
            "id": "E0-001-105389620-7"
        },
        {
            "id": "E0-001-104247759-2"
        },
        {
            "id": "E0-001-104342949-5"
        }
    ]
}