Pug*_*gal 7 xml schema node.js
我想使用node.js验证以下XML.任何人都可以建议在windows/linux上运行良好的node.js模块吗?
提前致谢.
我知道这是一篇较老的帖子,但我遇到过它,不幸的是,Ankit的答案对我来说并不是很有帮助.它最关注的是输入是否是有效的XML语法,而不是是否遵循作为OP的一部分的模式.
我发现libxmljs是你正在寻找的最佳解决方案.您可以解析,验证基本字符串以及详细结构.
检查XML语法的示例包括:
program.isValidSyntaxStructure = function (text) {
try {
libxmljs.parseXml(text);
} catch (e) {
return false;
}
return true;
};
Run Code Online (Sandbox Code Playgroud)
检查特定结构/模式的示例如下:
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);
Run Code Online (Sandbox Code Playgroud)
更新
请参阅 conrad10781 的回答。这个答案已经过时了,因为我链接到的原始 Wiki 页面已经存档,尽管它确实突出显示了哪些模块可以验证语法和模式。
过时的信息
通过npm可以使用大量 XML 解析器。
本机实现(例如 node-expat)确实需要构建 C++ 扩展,因此这可能会打破模块在 Windows 和 Linux 中工作的要求,但由于它们提供的速度,您无论如何都应该尝试它们,特别是如果您正在处理大型 XML 文件。
xmldom应该能够提供一些非常简单的字符串 XML 解析。然后,您可以创建一个函数来根据解析的输出简单地返回 true/false(查看DOMParser如何返回错误)。
归档时间: |
|
查看次数: |
8334 次 |
最近记录: |