AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML Werte auslesen und in Memo anzeigen?!

XML Werte auslesen und in Memo anzeigen?!

Ein Thema von Computerbabalulu · begonnen am 29. Aug 2004 · letzter Beitrag vom 30. Aug 2004
Antwort Antwort
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#1

XML Werte auslesen und in Memo anzeigen?!

  Alt 29. Aug 2004, 22:38
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?

Vielen Dank

Gruß Baba
Frank

Geändert von Computerbabalulu (29. Dez 2011 um 01:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 29. Aug 2004, 23:38
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

[nich ganz OnTopic]
In einigen der Programme werden ja auch kleine Bildchen (Smilies) mit angezeigt - eventuell kannst du das ja auch ganz gut verwenden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#3

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 29. Aug 2004, 23:50
Hi Himitsu

Danke für den Tip

Werde mal sehen ob ich da was gebrauchen kann bzw. ob ich daraus schlau werde !

Smileys sind immer gut

Gruß Baba
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#4

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 03:45
Hi nochmal

Nun, ich habe nichts gefunden was mich weiterbringt

Ich hätte vielleicht dabei sagen sollen, das ich noch Anfänger in Sachen Delphi bin

Kann mir das einer mal so erklären das auch ich als Newbi dahinter steige

Vielen Dank!

Gruß Baba
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 05:26
Hast du auch schon mal in der Tutorial-Sparte nach XML gesucht und dir die Ergebnisse angekuckt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi_Fanatic

Registriert seit: 24. Mär 2004
201 Beiträge
 
#6

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 07:31
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 :

http://delphi.about.com/library/weekly/aa072903a.htm

Zitat:
Ich hätte vielleicht dabei sagen sollen, das ich noch Anfänger in Sachen Delphi bin
aber aber.... was soll denn dieser Smiley dahinter ? Wir waren alle mal Anfänger, und sowas wie
einen einfachen, eigenen XML-Parser zu schreiben wäre ja auch eine ideale Anfänger-Aufgabe... da
lernt man richtig gut bei ...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 08:51
@Computerbabalulu --

Was ich dazu sagen kann ist: Dein Ansatz ist mir etwas zu umständlich. Du hast eine Struktur wie die folgende:
XML-Code:
<Images Count="12">
  <Image1 ... />
  <Image2 ... />
  <Image3 ... />
  
</Images>
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.

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:
<Images>
  <Image .../>
  <Image .../>
  <Image .../>
  
</Images>
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
Delphi-Quellcode:
nl := xmldoc.selectNodes('/Data/Images/Image');
// var nl : IXMLDOMNodeList
alle <Image>-Knoten in einem Array, das du nun der Reihe nach durchlaufen kannst:
Delphi-Quellcode:
for i := 0 to nl.length - 1 do
begin
  { ... }
end;
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.

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:
node := xmldoc.selectSingleNode('/Data/Images/@Count'); // node = IXMLDOMNode
ShowMessage(node.text);
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.

Zum Auflisten würde ich übrigens kein Memo sondern eher eine List-View verwenden.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 08:55
PS: Noch ein Nachtrag --

Zitat von Delphi_Fanatic:
und sowas wie einen einfachen, eigenen XML-Parser zu schreiben wäre ja auch eine ideale Anfänger-Aufgabe... da lernt man richtig gut bei ...
Ich weiß nicht so recht. Unter einem Parser verstehe ich den Code, der das XML-Dokument lädt, speichert, nach bestimmten Knoten und/oder Attributen sucht, usw. Kurz gesagt: die MS-XML-Bibliothek bspw., die mir den ganzen internen Kram vom Leib hält und mir nur die Schnittstelle zur Verfügung stellt. Unter dem Gesichtspunkt glaube ich nicht, dass ein eigener Parser eine gute Anfängeraufgabe ist.

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.
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#9

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 19:00
Hallo @all

Danke für die Hilfe. Werde mal sehen ob ich damit weiter komme.

@MathiasSimmack

An dem Aufbau der XML Datei kann ich leider nichts ändern. Diese Daten bekomme ich so zugesendet.

Melde mich wieder...

Gruß Frank
Frank
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: XML Werte auslesen und in Memo anzeigen?!

  Alt 30. Aug 2004, 21:19
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.
  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 06:58 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