ich sitze jetzt schon ein paar Stunden dran und kapiere nicht ganz was ich falsch mache. Habe jetzt schon unzählige Versionen ausprobiert und bin nie zu einem Ergebnis gekommen.
Das Problem in Kürze:
Ich habe eine kleine Applikation die aus einer Unmenge an bestehenden XML-Dateien eine neue Struktur zusammen parst. Das funktioniert soweit einwandfrei, nur manche XML Dateien sind nicht valide, vor allem wird da öfter mal an stellen verwendet, wo man das eigentlich gar nicht darf.
Die XML Lib motzt entsprechend und liefert (wenn ich die XML Datei mit LoadXML lade) #PB_XML_UndefinedEntity. Das möchte ich gerne abfangen indem ich einfach die Datei als String lade und so evtl. mittels String Funktionen manuell das rausschmeissen kann.
Aber irgendwie krieg ich das ums Verrecken nicht hin.
Hier mal eine von vielen Versionen:
Code: Alles auswählen
Procedure LoadStatusValidatedXML( filePath$ )
Protected file = ReadFile( #PB_Any, filePath$ )
If file
Protected text$
While Eof( file ) = 0
text$ = text$ + ReadString( file )
Wend
Protected xml = CatchXML( #PB_Any, @text$, Len( text$ ) )
Protected status = XMLStatus( xml )
Debug "XML status : " + Str( status )
If status = #PB_XML_UndefinedEntity
; do something and recreate the xml!
EndIf
ProcedureReturn xml
EndIf
EndProcedure
Hat evtl. jemand einen Tipp für mich? Ich würde mich sehr freuen!