ich stehe hier gerade vor einem Problem und weiß nicht woran es liegt:
Ich möchte ein XML parsen, welches ein xInclude enthält und danach dieses mittels RelaxNG validieren.
Hier ein Ausschnitt aus dem Parser:
Code: Alles auswählen
def pLXML(self, completeXMLContentAsString, xInclude=True):
xmlDoc = etree.parse(StringIO.StringIO(completeXMLContentAsString))
if xInclude:
xmlDoc.xinclude()
...
Mein XML sieht folgendermaßen aus und liegt im Verzeichnis: .../Beispiel/abc/test.xml:
Code: Alles auswählen
<Test xmlns:xi="http://www.w3.org/2001/XInclude" attributBeispiel="xyz">
<documentation>
BlaBla
</documentation>
<xi:include href="../abc/xyz.xml" parse="xml"/>
...
</Test>
So, wenn ich nun mein Programm aufrufe mit dem Pfad zu der Test.xml (z.B. "C:/programm/meinProg/Beispiel/abc/Test.xml"), dann wirft er mir den Fehler :
XInclude Error: failed to load external entity "../abc/xyz.xml".
Wenn ich im XInclude aber den Pfad "C:/programm/meinProg/Beispiel/abc/xyz.xml" angebe, dann lädt er es.
Ich weiß jedoch, dass es auch mit dem relativen Pfad gehen muss. Jedoch weiß ich nicht warum er es bei mir ablehnt...
Habt ihr einen Vorschlag?
Grüße
m0ps