gpt4 book ai didi

arrays - 按顺序将 XML 解析为数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:25 25 4
gpt4 key购买 nike

我有一个如下所示的 XML 文件:

<Item prop="foo">
<A key="1">
<B key="2">
<A key="3">
<C key="4">
<A key="5">
<A key="6">
</Item>
<Item .../>
<Item .../>

我想将此文件解析为 Item 数组,如下所示:

[
{
"prop": "foo",
"list": [
{ "key": "1" },
{ "key": "2" },
{ "key": "3" },
{ "key": "4" },
{ "key": "5" },
{ "key": "6" }
]
},
{ ...item }
{ ...item }
]

按顺序处理所有 ABC 标记并将其放入同一个数组 em>.

我正在使用 xml2json,它使用 node-expat 来解析文件。使用 node-expat 或任何现有的 npm 包是否可以实现这一点?我问的原因是因为如果可能的话,我不想用编译语言编写自己的解析器。

谢谢

最佳答案

Node ABC的数量是否很小且已知?

如果是这样,您可以尝试camaro像下面这样

编辑:xml 必须有效,在上面的示例中,它没有正确关闭。

const transform = require('camaro')
const xml = `
<Item prop="foo">
<A key="1"/>
<B key="2"/>
<A key="3"/>
<C key="4"/>
<A key="5"/>
<A key="6"/>
</Item>
`

const { output } = transform(xml, {
output: [
'//Item',
{
prop: '@prop',
list: ['A|B|C', { key: '@key' , tag: 'name()'}]
}
]
})

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

输出

[
{
"list": [
{
"key": "1",
"tag": "A"
},
{
"key": "2",
"tag": "B"
},
{
"key": "3",
"tag": "A"
},
{
"key": "4",
"tag": "C"
},
{
"key": "5",
"tag": "A"
},
{
"key": "6",
"tag": "A"
}
],
"prop": "foo"
}
]

关于arrays - 按顺序将 XML 解析为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49690568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com