Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Bestimmten Wert aus XML-Datei auslesen (https://www.delphipraxis.net/167173-bestimmten-wert-aus-xml-datei-auslesen.html)

CG2003 16. Mär 2012 11:55

Bestimmten Wert aus XML-Datei auslesen
 
Hallo Leute,

ich versuche bereits seit 4 Stunden krampfhaft aus folgender XML-Datei:

Code:
<?xml version="1.0" encoding="ASCII"?>
<Exif>
<APP1>
<Exif_IFD>
<DateTimeOriginal>2012:03:15 18:25:56</DateTimeOriginal>
</Exif_IFD>
<GPS_IFD>
<GPSLatitudeRef>N</GPSLatitudeRef>
<GPSLatitude>00:00:00</GPSLatitude>
<GPSLongitudeRef>E</GPSLongitudeRef>
<GPSLongitude>00:00:00</GPSLongitude>
</GPS_IFD>
</APP1>
<APP5>
<CameraMemo1>
<MemoItem1>Projekt</MemoItem1>
<MemoData1>SDhTMLpXJR_001_v</MemoData1>
</CameraMemo1>
<CameraMemo2>
<MemoItem2>Mitarbeiter</MemoItem2>
<MemoData2>Winner</MemoData2>
</CameraMemo2>
<CameraMemo3>
<MemoItem3>DokTyp</MemoItem3>
<MemoData3>Projektabnahme</MemoData3>
</CameraMemo3>
<CameraMemo4>
<MemoItem4></MemoItem4>
<MemoData4></MemoData4>
</CameraMemo4>
<CameraMemo5>
<MemoItem5></MemoItem5>
<MemoData5></MemoData5>
</CameraMemo5>
</APP5>
</Exif>
die Werte, die innerhalb von MemoData stehen auszulesen, erhalte aber immer leere Werte.

Ich benutze hierfür TXMLDocument.
Könnt ihr mir helfen?

Bernhard Geyer 16. Mär 2012 11:59

AW: Bestimmten Wert aus XML-Datei auslesen
 
Und was machst du bisher (Quellcode)?

p80286 16. Mär 2012 12:01

AW: Bestimmten Wert aus XML-Datei auslesen
 
Wenn Du jetzt noch zeigst (source) wie Du es machst, dann hast Du eine echte Chance, daß Dir jemand helfen kann.

Gruß
K-H

CG2003 16. Mär 2012 12:11

AW: Bestimmten Wert aus XML-Datei auslesen
 
Ja sorry, vergessen ;)

So versuche ich das Attribut auszulesen:

Code:
TempString := XMLDoc.DocumentElement.ChildNodes['CameraMemo1'].Text;

stahli 16. Mär 2012 12:31

AW: Bestimmten Wert aus XML-Datei auslesen
 
XML ist für mich lange her.
(Ich hatte hier mal meine damaligen Erkenntnisse zusammen gefasst. Vielleicht bringt Dir da ja etwas was...)

Ansonsten hast Du in Deinem Knoten m.E. nur Unterknoten und keinen Text.
Und Attribute sind im XML auch etwas anderes als Texte.

Aber genauer kann ich leider nicht weiter helfen.

shmia 16. Mär 2012 12:36

AW: Bestimmten Wert aus XML-Datei auslesen
 
Wer hat sich eigentlich dieses XML-Format ausgedacht?
Noch könnte man vielleicht daran etwas ändern...
Die Benennung der Elemente ist ziemlich ungeschickt.
Besser wäre:
XML-Code:
<APP5>
  <CameraMemo id="1">
    <MemoItem>Projekt</MemoItem>
    <MemoData>SDhTMLpXJR_001_v</MemoData>
  </CameraMemo>
  <CameraMemo id="2">
    <MemoItem>Mitarbeiter</MemoItem>
    <MemoData>Winner</MemoData>
  </CameraMemo>

CG2003 16. Mär 2012 12:55

AW: Bestimmten Wert aus XML-Datei auslesen
 
Leider kann ich an der XML-Datei nichts ändern.
Die kommt so von einem Gerät :(

himitsu 16. Mär 2012 12:58

AW: Bestimmten Wert aus XML-Datei auslesen
 
Delphi-Quellcode:
TempString := XMLDoc.DocumentElement.ChildNodes['CameraMemo1'].Text;
Liegt "CameraMemo1" im DocumentElement/RootElement aka "Exif"?
Wenn nein, dann kann es dort auch nicht gefunden werden. :stupid:

Du mußt es schon im richtigen Knoten suchen.
PS: XPath bietet auch Möglichkeiten global über mehrere Unterknotenebenen hinweg zu suchen.

CG2003 16. Mär 2012 13:14

AW: Bestimmten Wert aus XML-Datei auslesen
 
Hmm, das stimmt wohl.
Hab's jetzt so probiert:

Code:
TempString := XMLDoc.DocumentElement.ChildNodes['CameraMemo1'].ChildNodes['MemoData1'].Text;
Aber auch das bringt mir nur leere Werte...

Hab' ich jetzt hier 'nen Denkfehler?

himitsu 16. Mär 2012 13:46

AW: Bestimmten Wert aus XML-Datei auslesen
 
Jupp, denn auch der Pfad stimmt nicht.

APPS5


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 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