使用 node.js 验证 XML 语法/结构 [英] Validate XML Syntax / Structure with node.js

查看:92
本文介绍了使用 node.js 验证 XML 语法/结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 node.js 验证以下内容的 XML.任何人都可以推荐适用于 Windows/Linux 的好的 node.js 模块吗?

I want to validate XML for the below using node.js. Can anyone suggest good node.js module that works both on windows/linux?

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

提前致谢.

推荐答案

我知道这是一个较旧的帖子,但我遇到了它,不幸的是,Ankit 的回答对我没有太大帮助.它最多关注输入是否是有效的 XML 语法,而不是是否遵守作为 OP 一部分的架构.

I know this is an older post, but I came across it, and unfortunately, Ankit's answer wasn't terribly helpful for me. It focused at best on whether the input is valid XML syntax, not whether is adhered to a schema, which was part of the OP.

我发现 libxmljs 是满足您需求的最佳解决方案.您可以解析、验证基本字符串以及详细结构.

I've found libxmljs to be the best solution for what you're looking for. You can parse, validate the basic string, as well as a detailed structure.

检查 XML 语法的示例如下:

An example of checking for an XML syntax would be with something like:

program.isValidSyntaxStructure = function (text) {
    try {
        libxmljs.parseXml(text);
    } catch (e) {
        return false;
    }

    return true;
};

检查特定结构/模式的示例如下:

An example of checking for a specific structure/schema would be with something like:

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);

这篇关于使用 node.js 验证 XML 语法/结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆