![]() |
Problem mit XML auslesen/schreiben
Hallo.
Bin neu hier und hoffe auf eure Hilfe. Ich habe eine XML mit folgendem Inhalt:
XML-Code:
Mit TXMLDocument versucht ich den Inhalt auszulesen und zu schreiben.
<dataentry>
<Zeitstempel>18.02.2010 - 12:21:54:340</Zeitstempel> <Daten> <LOSE index="1"> <NAME>Test</NAME> <VALUE index="1"> <DESCRIPTIONLCID1031>Daten</DESCRIPTIONLCID1031> <DESCRIPTIONLCID1032></DESCRIPTIONLCID1032> <DESCRIPTIONLCID1033>:1 Value 1</DESCRIPTIONLCID1033> <TYP>13</TYP> <NUMBER>2</NUMBER> <LENGTH>100</LENGTH> <FI>false</FI> <FA>true</FA> <UNIT>mm</UNIT> </VALUE> <VALUE index="2"> <DESCRIPTIONLCID1031>Recipe 19</DESCRIPTIONLCID1031> <DESCRIPTIONLCID1032></DESCRIPTIONLCID1032> <DESCRIPTIONLCID1033>:1 Value 2</DESCRIPTIONLCID1033> <TYP>19</TYP> <NUMBER>0</NUMBER> <LENGTH>0</LENGTH> <FI>false</FI> <FA>false</FA> <UNIT>mm</UNIT> </VALUE> usw.. Der erste Knoten <Zeitstempel> ist kein Problem. Allerdings scheitere ich daran, die Inhalte von z.B. <Name>, <Typ> auszulesen. Also alles in <Lose index="ATT"> und folgend <Valua index="ATT">. Über einen Tip oder ein kleines Beispiel wäre ich sehr dankbar. Gruss |
AW: Problem mit XML auslesen/schreiben
Ich würde hier einfach mal auf
![]() <LOSE index="1"> LOSE[@index=1] Ansonsten könnte man zwar auch noch direkt über einen Index auf die Nodes zugreifen, aber über den Namen ist es wohl sicherer.
Delphi-Quellcode:
, da 2. Subknoten
ChildNodes[2]
Delphi-Quellcode:
.
ChildNodes['VALUE[@index=1]']
Und willkommen an Board :hi: |
AW: Problem mit XML auslesen/schreiben
Danke für deine schnelle Hilfe.
Hab´s mal ausprobiert aber hatte leider keinen Erfolg. Folgendermassen wollte ich den Namen in ein Memo schreiben:
Delphi-Quellcode:
bekomme den Fehler:
Memo2.Lines.Add(myFirstXML.DocumentElement.ChildNodes['dataentry'].ChildNodes['Daten'].ChildNodes['LOSE[@index=1]'].ChildNodes['Name'].Text);
'Dieser Name darf nicht das Zeichen'[' erhalten: LOSE-->[<--@index=1]' Habe mir die xPath schon angeschaut und jede erdenkliche Möglichkeit ausprobiert. Beim Auslesen der XML bekomme ich diesen Fehler. Denkfehler?! Syntaxfehler?! |
AW: Problem mit XML auslesen/schreiben
Für den Anfang hilft Dir
![]() |
AW: Problem mit XML auslesen/schreiben
Hat mir super geholfen. Danke. Echt gut erklärt. :thumb:
|
AW: Problem mit XML auslesen/schreiben
Nochmal speziell auf dieses Beispiel/Poblem:
.DocumentElement steht für den Root-Knoten und über .ChildNodes['dataentry'] wolltest du auf äußersten Knoten zugreifen, also auf den Root-Knotten, in welchem du da aber schon drinnen bist, so daß es davon kein Unterknoten sein kann, bzw. er kann kein Unterknoten von sich selber sein. Und man kann "Pfade" verbinden:
Delphi-Quellcode:
myFirstXML.DocumentElement.ChildNodes['Daten'].ChildNodes['LOSE[@index=1]'].ChildNodes['Name'].Text
myFirstXML.DocumentElement.ChildNodes['Daten\LOSE[@index=1]\Name'].Text |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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