![]() |
Exception mit himXML und Codetabelle ISO 8859-15
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöchen,
ich habe ein Problem beim Einlesen einer XML-Datei mit himXML, das mir bislang immer hervorragende Dienste geleistet hat. Hier ein wenig Code:
Delphi-Quellcode:
Die XML-Datei habe ich angehängt. Das ist eine Beispieldatei für eine XML-Datei mit AMTS-Daten (Arneimitteltherapiesicherheit).
function XMLTest: String;
var xml: TXMLFile; node: TXMLNode; begin Result := ''; xml := TXMLFile.Create(nil, 'AMTS.xml', False); try node := xml.FindNode['Irgendwas']; if Assigned(node) then Result := node.Text; finally xml.Free; end; end; Zitat Wikipedia: "Die Codetabelle ISO 8859-15 dient als Zeichensatzvorgabe für amtliche Zwecke wie die aufgedruckten Daten der Elektronischen Gesundheitskarte." Beim Laden der XML-Datei (also beim Create) erscheint eine Exception: "Im Projekt Test.exe ist eine Exception der Klasse EXMLException mit der Meldung '[EXMLException] TXReader.SetEnc: unknown encoding' aufgetreten." Die ISO-Encodings, die himXML kennt, gehen von ISO 8859-1 bis ISO 8859-9, wenn ich den Code richtig verstanden habe. Frage: gibt es eine Möglichkeit, die Datei mit himXML einzulesen oder mus ich mich mit einem weiteren XML-Parser anfreunden? Vielen Dank im Voraus :-) |
AW: Exception mit himXML und Codetabelle ISO 8859-15
Kann man die nicht einfach definieren? In Zeile 721 (oder 723) fügst du der Aufzählung einen neuen Wert hinzu und nach Zeile 1900 oder 1912 definierst du dann dafür den IANA-String und die Windows-Codepage (CP28605). Übrigens kennt Windows auch noch ISO 8859-13, was bei HimXML fehlt. 10, 11 und 14 kennt Windows nicht.
|
AW: Exception mit himXML und Codetabelle ISO 8859-15
Joar, entweder das dort einfügen,
oder alternativ via TEncoding/TFile.GetAllText/TStringStream/TStringList/... die Datei einlesen und als "Text" (Unicode) übergeben. |
AW: Exception mit himXML und Codetabelle ISO 8859-15
Vielen Dank,
ich habe den Vorschlag von Redeemer umgesetzt. Es kompiliert und die TreeDemo funktioniert. Vielen Dank für den Tipp. Allerdings blicke ich wohl noch nicht ausreichend durch, um selbst Werte auszulesen. Ich habe es versucht mit
Delphi-Quellcode:
oder
Result := xml['AMTS:MP\AMTS:P\egk'].Text;
Delphi-Quellcode:
Kein Erfolg, ...Text ist immer leer. Wo liegt mein Bedienungsfehler?
node := xml.FindNode['AMTS:MP'];
if Assigned(node) then begin node := node.FindNode['AMTS:P']; if Assigned(node) then begin Result := node.Text; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz