![]() |
XML Werte auslesen und in Memo anzeigen?!
Hi
Ich möchte aus der XML Date im Anhang jeweils die Formate und jeweiligen Stückzahlen der Bildbestellungen auslesen und in einem Memo oder so Auflisten. Z.B OrginalFilname = Bild003.jpg Copies = 3 Name(Format) = Bild 13 x 18 OrginalFilname = Bild004.jpg Copies = 1 Name(Format) = Bild 10 x 15 usw... Ich benutze MSXML. Kann mir jemand anhand der Datei mal ein Beispiel geben? :gruebel: Vielen Dank Gruß Baba |
Re: XML Werte auslesen und in Memo anzeigen?!
Such doch einfach mal in der DP nach "ShoutBox", "Wetbewerb", oder ähnliches ... da haben ja Einige von uns Programme (ShoutBox-Reader) erstellt, wo eine XML-Datei ausgelesen und dann natürlich auch angezeigt wird - da dürften sich ja auch 'ne Menge Beispiele finden lassen :zwinker:
[nich ganz OnTopic] In einigen der Programme werden ja auch kleine Bildchen (Smilies) mit angezeigt - eventuell kannst du das ja auch ganz gut verwenden. |
Re: XML Werte auslesen und in Memo anzeigen?!
Hi Himitsu
Danke für den Tip :thumb: Werde mal sehen ob ich da was gebrauchen kann :mrgreen: bzw. ob ich daraus schlau werde :oops: ! Smileys sind immer gut :zwinker: Gruß Baba |
Re: XML Werte auslesen und in Memo anzeigen?!
Hi nochmal
Nun, ich habe nichts gefunden was mich weiterbringt :oops: Ich hätte vielleicht dabei sagen sollen, das ich noch Anfänger in Sachen Delphi bin :wall: Kann mir das einer mal so erklären das auch ich als Newbi dahinter steige :gruebel: Vielen Dank! Gruß Baba |
Re: XML Werte auslesen und in Memo anzeigen?!
Hast du auch schon mal in der Tutorial-Sparte nach XML gesucht und dir die Ergebnisse angekuckt?
|
Re: XML Werte auslesen und in Memo anzeigen?!
Falls Du Delphi 7 (Pro) hast, dann findest Du dort auch eine xml-Komponente (TXMLDocument oder so ...)
Die ist hier ganz gut dokumentiert, und da gibt's auch eine Art Einsteiger-Kurs und Beispiele : ![]() Zitat:
einen einfachen, eigenen XML-Parser zu schreiben wäre ja auch eine ideale Anfänger-Aufgabe... da lernt man richtig gut bei ... |
Re: XML Werte auslesen und in Memo anzeigen?!
@Computerbabalulu --
Was ich dazu sagen kann ist: Dein Ansatz ist mir etwas zu umständlich. Du hast eine Struktur wie die folgende:
XML-Code:
Das sieht nur auf den ersten Blick vorteilhaft aus. Da aber eine XML-Datei bspw. keine INI ist, bei der es in einer Sektion nur einen bestimmten Namen geben kann/darf, ist die Zählung überflüssig und erschwert IMHO sogar die Programmierung.
<Images Count="12">
<Image1 ... /> <Image2 ... /> <Image3 ... /> </Images> MSXML (eigentlich jeder XML-Parser) kennt so genannte XPath-Anfragen. Sieh´s vereinfacht betrachtet wie einen Datenbank-Query, mit dem du auf einen Schlag mehrere Informationen abfragen kannst. Würdest du auf die Zählung verzichten, würde dein Knoten wie folgt aussehen:
XML-Code:
Das ist absolut kein Problem, da sich die einzelnen Knoten nicht in die Quere (in das Query ;)) kommen. Notfalls hast du ja auch noch die "ID"-Attribute. Aber du hättest mit einer XPath-Abfrage wie
<Images>
<Image .../> <Image .../> <Image .../> </Images>
Delphi-Quellcode:
alle <Image>-Knoten in einem Array, das du nun der Reihe nach durchlaufen kannst:
nl := xmldoc.selectNodes('/Data/Images/Image');
// var nl : IXMLDOMNodeList
Delphi-Quellcode:
Innerhalb dieser Schleife kannst du die Attribute abfragen, die dich interessieren; sprich: Bildname, Anzahl der Kopien, usw. Und wie man das macht, das findest du bspw. im Tutorial von Chakotay erklärt. Aber es müsste auch hier im Forum genug [dp="xml Attribute"]Ergebnisse[/dp] dazu geben.
for i := 0 to nl.length - 1 do
begin { ... } end; Bei der Zählvariante von oben ist (ich sag´ mal) dummerweise auch jeder Knoten anders benannt. Das heißt: Man muss tatsächlich erst den Hauptknoten bzw. dessen "Count"-Attribut auslesen
Delphi-Quellcode:
und dann muss man auf die gleiche Weise jeden einzelnen Knoten abfragen, wobei der Zählwert zu berücksichtigen ist, weil er im Namen steckt. Und das ist, meiner Ansicht nach, umständlich.
node := xmldoc.selectSingleNode('/Data/Images/@Count'); // node = IXMLDOMNode
ShowMessage(node.text); Zum Auflisten würde ich übrigens kein Memo sondern eher eine List-View verwenden. |
Re: XML Werte auslesen und in Memo anzeigen?!
PS: Noch ein Nachtrag --
Zitat:
Aber wenn du von einem Programm sprichst, das mit Hilfe eines beliebigen Parsers XML-Daten ausliest und mit ihnen arbeiten kann, dann würde ich dir zustimmen. Das ist eine gute Anfängeraufgabe, bei der man auch was lernen kann. ;) |
Re: XML Werte auslesen und in Memo anzeigen?!
Hallo @all
Danke für die Hilfe. Werde mal sehen ob ich damit weiter komme. :thumb: @MathiasSimmack An dem Aufbau der XML Datei kann ich leider nichts ändern. Diese Daten bekomme ich so zugesendet. Melde mich wieder... Gruß Frank |
Re: XML Werte auslesen und in Memo anzeigen?!
Na ja, da kann man nix machen. Aber notfalls geht es eben auch mit Schleife. Muss es ja, wenn du die Daten nicht anders bekommst. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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