I want to check for multiple syntax errors in an XML file. For example, missing < or slashes. And not just print the first one like xml.sax or XMLParser do, but show all different errors.
My current function, I try both sax and etree parser:
def check_xml_syntax(xml_file):
is_valid = True
try:
# Parse the XML file
parser_f = make_parser( )
parser_f.setContentHandler(ContentHandler( ))
parser_f.parse(xml_file)
parser = etree.XMLParser(dtd_validation=False)
etree.parse(xml_file, parser)
print(f"fctModelFiletoTcl.py: Validation successful: {xml_file} is a valid XML file.")
except etree.XMLSyntaxError as e:
is_valid = False
print(f"fctModelFiletoTcl.py: XML Syntax Error in {xml_file}: {e}")
except etree.XMLSchemaError as e:
is_valid = False
print(f"fctModelFiletoTcl.py: XML Schema Error in {xml_file}: {e}")
return is_valid