gpt4 book ai didi

javascript - fast-xml-parser 解析数组不正确

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:35 25 4
gpt4 key购买 nike

我遇到解析器错误地转换数组的问题。

数组创建代码(查看 DocFiles):

documents.push({
// Document fields...
DocFiles: []
});

for (const file of files) {
documents[documents.length - 1].DocFiles.push({ File: file });
}

或者:

documents.push({
// Document fields...
DocFiles: files.map(file => ({ File: file }))
});

数组的形式如下:

documents: [
{
DocFiles: [
{ File: Object },
{ File: Object },
{ File: Object }
},
{
DocFiles: [
{ File: Object },
{ File: Object },
{ File: Object }
}
]

我想在 DocFiles Node 中的每个文档中获取什么:

<DocFiles>
<File>{fileNodes}</File>
<File>{fileNodes}</File>
<File>{fileNodes}</File>
</DocFiles>

我得到了什么:

<DocFiles>
<File>{fileNodes}</File>
</DocFiles>
<DocFiles>
<File>{fileNodes}</File>
</DocFiles>
<DocFiles>
<File>{fileNodes}</File>
</DocFiles>

我做错了什么?

  • 解析器选项:
const options = {
attributeNamePrefix: '@_',
attrNodeName: '@',
textNodeName: '#text',
ignoreAttributes: true,
cdataTagName: '__cdata',
cdataPositionChar: '\\c',
format: true,
indentBy: ' ',
supressEmptyNode: true,
tagValueProcessor: a => a,
attrValueProcessor: a => a
}
  • 解析和编写代码:
for (const document of documents) {
const parent = { Nomenclature: document };
const fileName = `${Date.now().toString()}.xml`;
const Parser = xml.j2xParser;
const parser = new Parser(options);
const value = await parser.parse(parent);

await fs.writeFileSync(path.join(dir, fileName), value);
}
  • 解析之前:

  • 解析结果:

最佳答案

我找到了解决方案...

documents.push({
// Document fields...
DocFiles: {
DocFile: files.map(file => file)
}
});

感谢您的帮助:)

关于javascript - fast-xml-parser 解析数组不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55237063/

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