Python の XML 検証テクノロジ
XML (eXtensible Markup Language) は、データの保存と送信に使用されるマークアップ言語です。 Python では、XML ファイルが事前定義された構造と仕様に準拠していることを確認するために、XML ファイルを検証する必要があることがよくあります。この記事では、Python の XML 検証テクノロジを紹介し、コード例を示します。
DTD (Document Type Definition) は、XML ドキュメントの構造と規則を定義するドキュメントです。 DTD を使用して、XML ファイルが正しい形式であることを確認できます。簡単な XML ファイルの例を次に示します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE data [ <!ELEMENT data (item*)> <!ELEMENT item (name, price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> ]> <data> <item> <name>苹果</name> <price>10</price> </item> <item> <name>香蕉</name> <price>5</price> </item> </data>
xml.etree.ElementTree
モジュールの DTD
を使用して、XML ファイルを検証できます。以下にサンプルコードを示します。
import xml.etree.ElementTree as ET dtd = ET.DTD("""<!ELEMENT data (item*)> <!ELEMENT item (name, price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)>""") tree = ET.parse('data.xml') root = tree.getroot() if dtd.validate(root): print("XML文件验证通过") else: print("XML文件验证失败")
上記のコードを実行すると、XML ファイルの形式が正しい場合、「XML ファイルの検証に合格しました」と出力されます。
XML スキーマは、XML ドキュメントの構造と制約を定義するために使用される言語です。 DTD と比較して、XML スキーマはより強力です。以下は簡単な XML スキーマの例です。
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="data"> <xs:complexType> <xs:sequence> <xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="price" type="xs:float"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
xmlschema
ライブラリを使用して、XML ファイルが XML スキーマ仕様に準拠しているかどうかを確認できます。以下にサンプルコードを示します。
import xmlschema schema = xmlschema.XMLSchema("""<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="data"> <xs:complexType> <xs:sequence> <xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="price" type="xs:float"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>""") if schema.is_valid('data.xml'): print("XML文件验证通过") else: print("XML文件验证失败")
上記のコードを実行すると、XML ファイルの形式が正しい場合、「XML ファイルの検証に合格しました」と出力されます。
XPath は、XML ドキュメント内のノードを見つけるための言語です。 XPath を使用して XML ファイルの内容を検証できます。以下にサンプルコードを示します。
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() # 验证name节点是否包含文本 for name in root.findall('.//name'): if not name.text: print("XML文件验证失败") break else: print("XML文件验证通过")
上記のコードを実行すると、XML ファイル内のすべての名前ノードにテキストが含まれている場合、「XML ファイル検証に合格しました」と出力されます。
概要:
この記事では、DTD、XML スキーマ、XPath を使用した XML ファイルの検証など、Python での XML 検証テクノロジを紹介します。 XML ファイルを検証することで、事前定義された構造と仕様に従っていることを確認でき、データの精度と信頼性が向上します。実際の開発では、ニーズに応じて適切な検証方法を選択できます。この記事の概要とサンプル コードを通じて、読者は XML 検証の基本的な技術と使用法を習得できると思います。
以上がPython での XML 検証手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。