验证与node.js的XML语法/结构(Validate XML Syntax / Structur

2019-06-25 13:02发布

我想验证XML的使用以下node.js中 任何人都可以提出很好的Node.js模块,Windows / Linux上工作两者兼而有之?

  • 验证XML语法
  • 验证XML结构(架构)

提前致谢。

Answer 1:

我知道这是一个老帖子,但我碰到它,不幸的是,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);


Answer 2:

UPDATE

见conrad10781的答案。 这个答案是过时,因为原来的Wiki页面,而我链接已被封存,但它确实强调该模块使之能够同时验证语法和架构。

过时的信息

有通过使用XML解析器过多NPM 。

本机实现(如节点外籍人士)确实需要一个C ++扩展的建设,使可能会破坏需求的模块在Windows和Linux的工作,但因为速度的他们提供您都应该尝试出来,特别是如果你在处理大型XML文件。

XMLDOM应该能够提供一些非常简单的XML字符串的解析。 然后,您可以创建一个函数来简单地返回真/假取决于解析的输出(看看怎样的DOMParser返回错误)。



文章来源: Validate XML Syntax / Structure with node.js