eko*_*eko 2 xml validation xmldom node.js libxml-js
如何在 Node.js 中验证格式良好的 xml?我主要感兴趣的是仅检查文件是否格式正确。另外,我想收到发生错误的行号。
我有以下测试 xml:
<?xml version="1.0" encoding="UTF-8" ?>
<body>
<tagname>
test1
</tag.name> <--- error here
<tagname>
test2
</tagname>
</body>
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试过:
xmldom:
var parser = new DOMParser({errorHandler: (level, error) => {
console.log (level, error);
}});
var dom = parser.parseFromString(content, 'application/xml');
Run Code Online (Sandbox Code Playgroud)
问题:没有任何错误提示。错误处理程序永远不会被调用,并且 dom 包含“test1”但不包含“test2”。所以解析器只是停止并吞掉错误。
libxmljs:
var xmlDoc = libxmljs.parseXml(xml);
Run Code Online (Sandbox Code Playgroud)
问题:抛出无用的异常“标记体内数据过早结束”。
最近我们也必须使用 NodeJS 进行一些 xml 解析,最终使用fast-xml-parser,到目前为止我们对此非常满意。适用于您的情况,您可以使用以下.validate(..)方法:
const xmlString = `<?xml version="1.0" encoding="UTF-8" ?>
<body>
<tagname>
test1
</tag.name> <--- error here
<tagname>
test2
</tagname>
</body>`;
const parser = require('fast-xml-parser');
const validationResult = parser.validate(xmlString);
console.log(validationResult)
// validationResult will be an object of:
{
err: {
code: 'InvalidTag',
msg: "Closing tag 'tagname' is expected inplace of 'tag.name'.",
line: 5
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2300 次 |
| 最近记录: |