8

我正在尝试解析一串 xml,但出现错误

[Error: Invalid character entity
Line: 0
Column: 837
Char:  ]

xml不喜欢括号吗?我需要用 \\] 之类的东西替换所有括号吗?谢谢

4

2 回答 2

11

好的,无效字符是破折号和 &。我通过执行以下操作来修复它:

xml = data.testSteps.replace(/[\n\r]/g, '\\n')
                    .replace(/&/g,"&")
                    .replace(/-/g,"-");

谢谢

于 2014-07-22T00:55:39.553 回答
7

使用节点 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);
        }
    });
于 2017-01-30T18:53:02.263 回答