Dan*_*Dan 4 xml node.js xml-parsing xml2js
我有一个带有&的xml文档,因此出现错误
[Error: Invalid character in entity name
Line: 155
Column: 63
Char: ]
Run Code Online (Sandbox Code Playgroud)
我编写了一个函数来转义非法的xml字符:
const escapeIllegalCharacters = (xml) => {
xml = xml
.replace(/&/g,'&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/>/g, '>')
.replace(/</g, '<');
return (xml);
}
Run Code Online (Sandbox Code Playgroud)
并将其放入valueProcessor中:
return parse.parseString(xml, {valueProcessors: [escapeIllegalCharacters]});
Run Code Online (Sandbox Code Playgroud)
但是我仍然遇到同样的错误。这是使用xml2js模块转义字符的错误方法吗?
致电之前,您需要先跳过&符parseString。
您可以使用此答案中的正则表达式来转义本身不是espace序列一部分的“&”号:
return parse.parseString(
xml.replace(/&(?!(?:apos|quot|[gl]t|amp);|#)/g, '&')
);
Run Code Online (Sandbox Code Playgroud)
这是否能解决您的问题取决于XML的内容。例如,这种简单的机制也将转义段中的任何“&”号CDATA,但是这些段中的“&”号应保持不转义。
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |