Nachdem mir gestern so prompt geholfen wurde (danke Dookie!), versuche ich es gleich mit meinem nächsten Problem. Ich habe mehrere XML-Dateien, zu jeder gibt es auch eine DTD, und alle Dateien liegen in einem Verzeichnis. Als Beispiel nehme ich die Datei constants.xml, deren erste Zeilen so aussehen:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE LISTOFCONSTANTS SYSTEM "constants_schema.dtd">
<LISTOFCONSTANTS>
Nun kann ich die XML-Datei problemlos gegen die DTD validieren:
Code: Alles auswählen
def val(xml_datei):
xv=xmlval.XMLValidator()
dt=DTDHandler(xv.parser)
bh=BadOrderErrorHandler(xv.app.locator)
xv.set_error_handler(bh)
xv.set_dtd_listener(dt)
xv.parse_resource(xml_datei)
Code: Alles auswählen
from xml.sax import make_parser
def read_in_constants(xml_datei):
ch=Const_Handler() #Selbstgebaut
saxparser=make_parser()
saxparser.setContentHandler(ch)
saxparser.parse(xml_datei)
Code: Alles auswählen
File "C:\Python23\lib\urllib2.py", line 233, in get_type
raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: constants_schema.dtd
Gruß,
Michael