AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit XML auslesen/schreiben

Ein Thema von VinceK · begonnen am 4. Nov 2010 · letzter Beitrag vom 7. Nov 2010
Antwort Antwort
VinceK

Registriert seit: 4. Nov 2010
5 Beiträge
 
#1

Problem mit XML auslesen/schreiben

  Alt 4. Nov 2010, 20:38
Hallo.

Bin neu hier und hoffe auf eure Hilfe.
Ich habe eine XML mit folgendem Inhalt:

XML-Code:
<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..
Mit TXMLDocument versucht ich den Inhalt auszulesen und zu schreiben.
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

Geändert von mkinzler ( 6. Nov 2010 um 09:43 Uhr) Grund: Code-Tag durch XML-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit XML auslesen/schreiben

  Alt 4. Nov 2010, 20:55
Ich würde hier einfach mal auf Bei Google suchenXPath verweisen.

<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.

ChildNodes[2] , da 2. Subknoten
ChildNodes['VALUE[@index=1]'] .


Und willkommen an Board
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 4. Nov 2010 um 20:59 Uhr)
  Mit Zitat antworten Zitat
VinceK

Registriert seit: 4. Nov 2010
5 Beiträge
 
#3

AW: Problem mit XML auslesen/schreiben

  Alt 6. Nov 2010, 09:11
Danke für deine schnelle Hilfe.
Hab´s mal ausprobiert aber hatte leider keinen Erfolg. Folgendermassen wollte ich den Namen in ein Memo schreiben:

Memo2.Lines.Add(myFirstXML.DocumentElement.ChildNodes['dataentry'].ChildNodes['Daten'].ChildNodes['LOSE[@index=1]'].ChildNodes['Name'].Text); bekomme den Fehler:
'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?!
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Problem mit XML auslesen/schreiben

  Alt 6. Nov 2010, 10:29
Für den Anfang hilft Dir das vielleicht?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
VinceK

Registriert seit: 4. Nov 2010
5 Beiträge
 
#5

AW: Problem mit XML auslesen/schreiben

  Alt 7. Nov 2010, 13:49
Hat mir super geholfen. Danke. Echt gut erklärt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#6

AW: Problem mit XML auslesen/schreiben

  Alt 7. Nov 2010, 20:56
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:09 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