XML-Dateien per ReadLn einlesen
Hallo,
ich möchte die XML-Dateien der Windows-Leistungsbewertung in Delphi auswerten und benutze dazu AssignFile, Reset, und ReadLn. Leider liefert ReadLn folgendes zurück: ÿþ<'#0'?'#0'x'#0'm'#0'l'#0' '#0'v'#0'e'#0'r'#0's'#0'i'#0'o'#0'n'#0'='#0'"'#0'1 '#0'.'#0'0'#0'"'#0 und das sollte eigentlich zurückkommen: <?xml version="1.0"> Aus irgendeinem Grund wird nach jedem Zeichen '#0' eingefügt. Hat dafür jemand eine Erklährung? Wie kann ich das ändern? Danke und Gruß |
AW: XML-Dateien per ReadLn einlesen
Die Datei ist UTF16 kodiert, und du packst das in einen Ansistring. Deshalb die beiden komischen Zeichen am Anfang (siehe Byte Order Mark).
Pack das Ganze in einen WideString, dann müsste es eigentlich gehen. MfG Fabian |
AW: XML-Dateien per ReadLn einlesen
XML-Dateien sollten über entsprechender XML-Komponenten/Parser geladen werden. Oder willst du die ganzen Regeln bzgl. Entities/Codierung selbst nachimplementieren?
|
AW: XML-Dateien per ReadLn einlesen
Zitat:
Ich wollte eigentlich keine kompletten XML-Strukturen verarbeiten, sondern lediglich 2 Werte auslesen. Dafür einen eigenen XML-Parser zu verwenden, schien mir zu aufwendig. |
AW: XML-Dateien per ReadLn einlesen
Zitat:
Zitat:
Nimm dir etwas Zeit und mach die Lösung vernünftig! Du sparst dir damit sehr viel Aufwand bezüglich Fehlersuche und Stress. |
AW: XML-Dateien per ReadLn einlesen
Welchen XML-Parser würdest Du denn vorschlagen? Es geht wirklich nur ums Suchen und Auslesen von XML-Attributen, nicht um Änderungen. Also irgend etwas einfaches...
|
AW: XML-Dateien per ReadLn einlesen
Wenn Du eine IDE-Komponente nutzen willst, geht wohl am einfachsten:
Delphi-Quellcode:
Result := (XmlDocument1.DOMDocument as IDOMNodeSelect).selectNode(XPath).childNodes[0].nodeValue
Dann kannst Du sogar XPath nutzen :-) Das setzt allerdings voraus, dass der Knoten existiert und keinen Leerstring enthält - sonst gibt es einen Fehler. Daher bin ich hier gerade auf der Suche nach einer flexibleren Alternative. |
AW: XML-Dateien per ReadLn einlesen
Zitat:
Selbst in Delphi 7 kennt ReadLn WideString-Variablen. Aber die Datei wird immer als ANSI interpretiert. Es sei den man stellt die entsprechende WinAPI auf OEM um, dann kennt sie stattdessen den alten OEM-Zeichensatz (DOS). PS: meinem Hier im Forum suchenhimXML-Download sind noch einige andere XML-Libs mit beigelegt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz