জনপ্রিয় লাইব্রেরি lxML ব্যবহার করে পাইথন 3-তে একটি সাধারণ বৈধতার উদাহরণ
ইনস্টলেশন lxML
pip install lxml
আপনি যদি লাইব্রেরিতে libxML2 ফাংশন xMLCheckVersion খুঁজে পেতে পারেন নি যেমন একটি ত্রুটি পান তবে libxML2 ইনস্টল করা আছে? " , প্রথমে এটি করার চেষ্টা করুন:
# Debian/Ubuntu
apt-get install python-dev python3-dev libxml2-dev libxslt-dev
# Fedora 23+
dnf install python-devel python3-devel libxml2-devel libxslt-devel
সবচেয়ে সহজ বৈধতা
আসুন সরল ভ্যালিডেটর.পি
from lxml import etree
def validate(xml_path: str, xsd_path: str) -> bool:
xmlschema_doc = etree.parse(xsd_path)
xmlschema = etree.XMLSchema(xmlschema_doc)
xml_doc = etree.parse(xml_path)
result = xmlschema.validate(xml_doc)
return result
তারপরে লিখুন এবং main.py চালান
from validator import validate
if validate("path/to/file.xml", "path/to/scheme.xsd"):
print('Valid! :)')
else:
print('Not valid! :(')
কিছুটা ওওপি
একাধিক ফাইল যাচাই করার জন্য, প্রতিবার একটি এক্সএমএলস্কেমা অবজেক্ট তৈরি করার দরকার নেই , সুতরাং:
validator.py
from lxml import etree
class Validator:
def __init__(self, xsd_path: str):
xmlschema_doc = etree.parse(xsd_path)
self.xmlschema = etree.XMLSchema(xmlschema_doc)
def validate(self, xml_path: str) -> bool:
xml_doc = etree.parse(xml_path)
result = self.xmlschema.validate(xml_doc)
return result
এখন আমরা ডিরেক্টরিতে সমস্ত ফাইল নিম্নলিখিত হিসাবে যাচাই করতে পারি:
main.py
import os
from validator import Validator
validator = Validator("path/to/scheme.xsd")
# The directory with XML files
XML_DIR = "path/to/directory"
for file_name in os.listdir(XML_DIR):
print('{}: '.format(file_name), end='')
file_path = '{}/{}'.format(XML_DIR, file_name)
if validator.validate(file_path):
print('Valid! :)')
else:
print('Not valid! :(')
আরও বিকল্পের জন্য এখানে পড়ুন: lxML সহ বৈধতা