我正在尝试解析一串 xml,但出现错误
[Error: Invalid character entity
Line: 0
Column: 837
Char: ]
xml不喜欢括号吗?我需要用 \\] 之类的东西替换所有括号吗?谢谢
好的,无效字符是破折号和 &。我通过执行以下操作来修复它:
xml = data.testSteps.replace(/[\n\r]/g, '\\n')
.replace(/&/g,"&")
.replace(/-/g,"-");
谢谢
使用节点 domparser 将不必对每个不容易解析为字符串的字符进行字符串替换。如果您要解析大量可能具有不同字符的 XML,这将特别有用。
我会推荐xmldom,因为我已经成功地将它与xml2js一起使用
组合用法如下所示:
var parseString = require('xml2js').parseString;
var DOMParser = require('xmldom').DOMParser;
var xmlString = "<test>some stuff </test>";
var xmlStringSerialized = new DOMParser().parseFromString(xmlString, "text/xml");
parseString(xmlStringSerialized, function (err, result) {
if (err) {
//did not work
} else {
//worked! use JSON.stringify()
var allDone = JSON.stringify(result);
}
});