我想使用node.js验证以下XML。任何人都可以建议在windows / linux上运行良好的node.js模块吗?
提前致谢。
答案 0 :(得分:8)
我知道这是一篇较老的帖子,但我遇到过它,不幸的是,Ankit的回答对我来说并不是很有帮助。它最关注的是输入是否是有效的XML语法,而不是是否遵循模式,这是OP的一部分。
我发现libxmljs是您正在寻找的最佳解决方案。您可以解析,验证基本字符串以及详细结构。
检查XML语法的一个例子是:
program.isValidSyntaxStructure = function (text) {
try {
libxmljs.parseXml(text);
} catch (e) {
return false;
}
return true;
};
检查特定结构/模式的示例如下:
var xsd = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="comment" type="xs:string"/></xs:schema>';
var xml_valid = '<?xml version="1.0"?><comment>A comment</comment>';
var xml_invalid = '<?xml version="1.0"?><commentt>A comment</commentt>';
var xsdDoc = libxml.parseXml(xsd);
var xmlDocValid = libxml.parseXml(xml_valid);
var xmlDocInvalid = libxml.parseXml(xml_invalid);
assert.equal(xmlDocValid.validate(xsdDoc), true);
assert.equal(xmlDocInvalid.validate(xsdDoc), false);
答案 1 :(得分:0)