用lxml的RelaxNG验证XML需先加载合法.rng文件或字符串生成验证器,再解析XML为etree对象后调用validate();常见问题包括路径错误、编码不匹配、命名空间未声明及忽略error_log。

用 lxml 的 RelaxNG 验证 XML,核心是:先加载 RelaxNG 模式(.rng 文件或字符串),再用它校验 XML 文档对象(etree.ElementTree 或 etree.Element)。过程不复杂,但几个细节容易出错。
准备 RelaxNG 模式文件
确保你有一个合法的 .rng 文件(XML 格式),例如 schema.rng:
<?xml version="1.0"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="book">
<interleave>
<element name="title"><text/></element>
<element name="author"><text/></element>
</interleave>
</element>
</start>
</grammar>登录后复制
注意:RNG 必须是 well-formed XML,命名空间要正确;如果用在线或程序生成的 RNG,确认没有遗漏 xmlns 声明。
加载 RNG 并创建验证器
用 etree.RelaxNG 加载模式,返回一个可调用的验证器对象:
立即学习“Python免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~