XML文件的语法检查

问题描述 投票:0回答:1

经过大量阅读,我了解验证XML文件的最佳方法是使用XML模式(XSD文件)。

就我而言,我想做一个动态程序来对XML文件进行语法检查。

  1. 动态表示,我的程序不是硬编码的
  2. 通过语法检查,我的意思是它只是检查元素是否符合规则(例如:元素的值只能在数字0 -150之间)

我选择的编程语言是Python,但Java是另一种选择。

结论:我已经读过有关使用ElementTree进行解析以及使用lxml使用XSD验证XML文件的信息,但是我不想为收到的每个稍有不同的XML文件创建一个新的XSD。我似乎找不到任何有关仅使用Python编程进行语法检查XML文件的文章。打开任何建议。

python xml dynamic syntax
1个回答
0
投票

对于初学者,您说过不要对程序进行硬编码。我相信您的意思是您不希望它运行差异以检查是否存在差异。您想创建一种方法来确保xml文档遵循“您的规则”,该规则可以是默认模式文档,也可以只是被检查的编程语法规则。显然,这可以通过几种不同的方式来完成。这在很大程度上取决于您需要检查的规则的复杂性。如果您对dog xml对象有规则,则它们必须具有tail属性,并且您要检查其长度是否在一定范围内。您需要具有xml结构概念的选项,该对象具有类似于dog的对象,然后只需要编写规则来检查那些对象的属性。本指南对如何制作XSD文档给出了非常简洁的指导。 https://www.w3schools.com/xml/schema_example.asp本文档向您展示如何在文件中创建规则。

<xs:simpleType name="orderidtype">
  <xs:restriction base="xs:string">
    <xs:pattern value="[0-9]{6}"/>
  </xs:restriction>
</xs:simpleType>

现在,如果您只想在python中以自己的方式进行操作,则可以使用lxml加载文档。然后使用lxml.etree.parser()解析制作规则,以了解如何格式化每种对象类型并检查每个不同的规则。确保使用所拥有的关于将要接收的xml文档的格式和结构的所有知识,以最大程度地减少编写程序以检查它们所需的规则的复杂性。 https://lxml.de/parsing.html

© www.soinside.com 2019 - 2024. All rights reserved.