gpt4 book ai didi

Node.js - XML 验证

转载 作者:行者123 更新时间:2023-12-02 19:12:23 25 4
gpt4 key购买 nike

如何在 node.js 中验证 xml?我主要对检查文件格式是否正确感兴趣。此外,我想收到发生错误的行号。

我有以下测试 xml:

<?xml version="1.0" encoding="UTF-8" ?>
<body>
<tagname>
test1
</tag.name> <--- error here
<tagname>
test2
</tagname>
</body>

到目前为止我尝试了什么:

XML 域:

var parser = new DOMParser({errorHandler: (level, error) => {
console.log (level, error);
}});
var dom = parser.parseFromString(content, 'application/xml');

问题:没有错误指示。永远不会调用错误处理程序,并且 dom 包含“test1”但不包含“test2”。所以解析器只是停止并吞下错误。

libxmljs:

var xmlDoc = libxmljs.parseXml(xml);

问题:抛出无法描述的异常“标记正文中的数据过早结束”。

最佳答案

我们最近也不得不用 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
}
}

关于Node.js - XML 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64063935/

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