2024-10-01 07:48:20 发布
网友
如何在Python中通过compactrelaxng模式验证XML文档?在
如果要从命令行检查语法vsCompactRelaxNG语法,可以使用jingtrang模块中的pyjing。在
pyjing
它支持.rnc文件,并显示比True或{}更多的细节。例如:
True
C:\>pyjing -c root.rnc invalid.xml C:\invalid.xml:9:9: error: element "name" not allowed here; expected the element end-tag or element "bounds"
注意:它是Java的Python包装器,因此需要安装Java。
如果您想从Python内部检查语法,可以
使用pytrang(fromjingtrang包装器)将“Compact RelaxNG”(.rnc)转换为XML RelaxNG(.rng): pytrang root.rnc root.rng
pytrang
pytrang root.rnc root.rng
使用lxml来解析转换后的.rng文件:https://lxml.de/validation.html#relaxng
lxml
应该是这样的:
用lxml怎么样?在
从文件中:
>>> f = StringIO('''\ ... <element name="a" xmlns="http://relaxng.org/ns/structure/1.0"> ... <zeroOrMore> ... <element name="b"> ... <text /> ... </element> ... </zeroOrMore> ... </element> ... ''') >>> relaxng_doc = etree.parse(f) >>> relaxng = etree.RelaxNG(relaxng_doc) >>> valid = StringIO('<a><b></b></a>') >>> doc = etree.parse(valid) >>> relaxng.validate(doc) True >>> invalid = StringIO('<a><c></c></a>') >>> doc2 = etree.parse(invalid) >>> relaxng.validate(doc2) False
如果要从命令行检查语法vsCompactRelaxNG语法,可以使用jingtrang模块中的
pyjing
。在它支持.rnc文件,并显示比}更多的细节。例如:
True
或{注意:它是Java的Python包装器,因此需要安装Java。
如果您想从Python内部检查语法,可以
使用
pytrang
(fromjingtrang包装器)将“Compact RelaxNG”(.rnc)转换为XML RelaxNG(.rng):pytrang root.rnc root.rng
使用
lxml
来解析转换后的.rng文件:https://lxml.de/validation.html#relaxng应该是这样的:
^{pr2}$用lxml怎么样?在
从文件中:
相关问题 更多 >
编程相关推荐