我想验证XML的使用以下node.js中 任何人都可以提出很好的Node.js模块,Windows / Linux上工作两者兼而有之?
- 验证XML语法
- 验证XML结构(架构)
提前致谢。
我想验证XML的使用以下node.js中 任何人都可以提出很好的Node.js模块,Windows / Linux上工作两者兼而有之?
提前致谢。
我知道这是一个老帖子,但我碰到它,不幸的是,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);
UPDATE
见conrad10781的答案。 这个答案是过时,因为原来的Wiki页面,而我链接已被封存,但它确实强调该模块使之能够同时验证语法和架构。
过时的信息
有通过使用XML解析器过多NPM 。
本机实现(如节点外籍人士)确实需要一个C ++扩展的建设,使可能会破坏需求的模块在Windows和Linux的工作,但因为速度的他们提供您都应该尝试出来,特别是如果你在处理大型XML文件。
XMLDOM应该能够提供一些非常简单的XML字符串的解析。 然后,您可以创建一个函数来简单地返回真/假取决于解析的输出(看看怎样的DOMParser返回错误)。