AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML auslesen!?

Ein Thema von f.r.e.s.h.d · begonnen am 20. Mär 2003 · letzter Beitrag vom 24. Mär 2003
Antwort Antwort
Seite 1 von 2  1 2      
f.r.e.s.h.d

Registriert seit: 6. Feb 2003
Ort: Hamburg
66 Beiträge
 
Delphi 6 Enterprise
 
#1

XML auslesen!?

  Alt 20. Mär 2003, 12:53
Wie lese ich einen Eintrag in einer XML-Datei aus.

Z.B.:

<rpt:Name><rpt:VorName>MeinenNamen</rpt:VorName></rpt:Name>

Wie lese ich hier z.B. MeinenNamen aus???
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#2
  Alt 20. Mär 2003, 18:37
Delphi-Quellcode:
function TMainForm.ExtractName(aInputString: String): String;
const
  name_start = '<rpt:VorName>';
  name_end = '</rpt:VorName>';
var
  i_start, i_end : Integer;
begin
  Result := '';
  i_start := Pos(name_start,aInputString);
  if i_start > 0 then
  begin
    i_start := i_Start+length(name_start);
    i_end := Pos(name_end,aInputString);
    if i_end > i_start then
    begin
      Result := copy(aInputString,i_start,i_end-i_start);
    end;
  end;
end;

procedure TMainForm.ButtonAuslesenClick(Sender: TObject);
begin
  LabelOut.Caption := ExtractName(EditIn.Text);
end;
so etwa in der Art...
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3
  Alt 20. Mär 2003, 18:58
Ui. Dann kann er ja gleich Textdateien nehmen. Für XML-Dateien gibt es Komponenten. Sind, glaube ich, bei den höheren Delphi-Versionen auch dabei oder so.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#4
  Alt 20. Mär 2003, 19:02
@Luckie : Ui?
Ist doch (Plus-Minus) eine schöne Funktion!

Komponenten findest Du wohl hier wenn Du sie nicht hast
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5
  Alt 20. Mär 2003, 19:25
Nein, das ist keine schöne Funktion. Ich würde ebenfalls die Komponenten (ab Delphi 6) bzw. die MS-XML-Typbibliothek (für Delphi bis 5) vorschlagen. Mit denen lässt sich eindeutig einfacher arbeiten.

Beispiele für XML gibt´s hier genug.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6
  Alt 21. Mär 2003, 02:30
Zitat von Luckie:
Dann kann er ja gleich Textdateien nehmen...
Jetzt muß ich doch mal dumm nachhaken : Worin besteht der Unterschied von XML-Dateien zu einer Textdatei ? Ist da irgendwo doch was binär codiert?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 21. Mär 2003, 02:39
Ist auch nur ASCII-Text aber mit einem bestimmten Format. Vergleichbar mie HTML, aber doch auch wiede rganz anders. Kuck dir mal eine XML-Datei mit Notepad an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8
  Alt 21. Mär 2003, 02:58
Ansonsten hätte ich auch mein XML-Programm verschrotten können. Da stellt sich noch die Frage, wofür Komponenten ? Einen Text wird man doch noch selber bearbeiten können ?
Gruß
Hansa
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9
  Alt 21. Mär 2003, 07:15
@Luckie: Ein bestimmtes Format gibt es bei XML nicht. Eher im Gegenteil, du hast die Freiheit, dir eigene Tags auszudenken. Das einzige, was wichtig ist: das XML-Dokument muss "well formed" (wohlgeformt) sein.

@Hansa: Ein XML-Dokument muss aber nun nicht zwangsläufig so aussehen:
Code:
<rpt:Name><rpt:VorName>MeinenNamen</rpt:VorName></rpt:Name>
Es wäre ebenso möglich, dies auf mehrere Zeilen auszudehnen:
Code:
<rpt:Name>
  <rpt:VorName>
    MeinenNamen
  </rpt:VorName>
</rpt:Name>
Willst du die XML-Datei mit normalen Befehlen (AssignFile, ReadLn, usw.) bearbeiten, dann musst du das berücksichtigen. Die Idee von Mirilin würde hier nicht mehr korrekt arbeiten, würde man die XML-Datei zeilenweise mit ReadLn auslesen.

Mit einem XML-Parser ist es unwichtig, ob Zeilenumbrüche vorhanden sind oder nicht. Und man kommt auch relativ schnell an die gesuchten Infos ran:
Delphi-Quellcode:
xmldoc := CoDOMDocument.Create;
if(xmldoc <> nil) then begin
  // ggf. Parser-Anweisungen
  // sozusagen "do's and dont's" :o)
  { ... }

  if(xmldoc.loadXML('Dateiname')) then begin
    node := xmldoc.selectSingleNode('<rpt:Name>/<rpt:VorName>');
    ShowMessage(node.xml);
  end;
end;
(ohne Gewähr, weil: aus´m Kopf)

Ähnlich einfach ließe sich die Datei bzw. das geladene Dokument nun erweitern, der Name könnte geändert werden, usw. - und dann kann das geänderte Dokument neu gespeichert werden.
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#10
  Alt 21. Mär 2003, 14:15
Eine XMl-Komponente wird intern sicherlich Stringverarbeitung machen, nur braucht man sich nicht darum zu kümmern und kann die Vorteile dieser Komponenten nutzen.
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:04 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