gpt4 book ai didi

node.js - 如何使用 Node xml2js 模块转义字符?

转载 作者:数据小太阳 更新时间:2023-10-29 02:04:39 25 4
gpt4 key购买 nike

我有一个包含 & 的 xml 文档,所以我得到了一个错误

   [Error: Invalid character in entity name
Line: 155
Column: 63
Char: ]

我写了一个函数来转义非法的xml字符:

const escapeIllegalCharacters = (xml) => {
xml = xml
.replace(/&/g,'&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/>/g, '>')
.replace(/</g, '&lt;');
return (xml);
}

并将其放入 valueProcessor 中:

return parse.parseString(xml, {valueProcessors: [escapeIllegalCharacters]});

但我仍然遇到同样的错误。这是使用 xml2js 模块转义字符的错误方法吗?

最佳答案

在调用 parseString 之前,您需要对 & 符号进行转义。

您可以使用 this answer 中的正则表达式转义本身不属于空格序列的&符号:

return parse.parseString(
xml.replace(/&(?!(?:apos|quot|[gl]t|amp);|#)/g, '&amp;')
);

这是否会解决您的问题将取决于您的 XML 的内容。例如,这种简单的机制还将转义 CDATA 部分中的任何 & 符号,但这些部分中的 & 符号应保持未转义。

关于node.js - 如何使用 Node xml2js 模块转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41902971/

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