Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Prism XML Datei erstellen (https://www.delphipraxis.net/28354-xml-datei-erstellen.html)

Dagon 23. Aug 2004 16:41


XML Datei erstellen
 
Hallo

Mit welcher Klasse kann ich am einfachsten eine XML Datei erstellen, ändern, öffnen, schliessen und auslesen?

Alexander 23. Aug 2004 16:43

Re: XML Datei erstellen
 
Hast du dir schon mal das Tut. von Chris angeschaut? da wird es beschrieben, allerdings ohne Komponente...

Dagon 23. Aug 2004 17:11

Re: XML Datei erstellen
 
Ich habe vergessen zu erwähnen: Ich arbeite mit den .NET Framework :wink:

MathiasSimmack 23. Aug 2004 17:20

Re: XML Datei erstellen
 
Das Prinzip ist aber trotzdem so ähnlich. Ich habe sogar noch ein Stück Quellcode gefunden:
Delphi-Quellcode:
uses
  { ... }, System.Xml;

constructor TWinForm.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
  xmldoc := XmlDocument.Create;
  if(xmldoc <> nil) then
  begin
    ComboBox1.Items.Add(string('http://www.heise.de/newsticker/heise.rdf'));
    ComboBox1.Items.Add(string('http://www.delphipraxis.com/rdf.php'));

    ComboBox1.set_SelectedIndex(0);
  end;
end;

procedure TWinForm.ComboBox1_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
var
  nl : XmlNodeList;
  i : integer;
begin
  if(xmldoc = nil) or
    (ComboBox1.SelectedItem = nil) then exit;

  // versuche URL zu laden
  try
    xmldoc.Load(ComboBox1.SelectedItem.ToString);
  except
    MessageBox.Show(
      'Fehler beim Laden der XML-Daten von ' +
        ComboBox1.SelectedItem.ToString,
      self.Text,
      MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
    exit;
  end;

  // alle "item"-Knoten ermitteln
  nl := xmldoc.SelectNodes('//*[name(.)="item"]/*[name(.)="title"]');
  if(nl.Count > 0) then
    for i := 0 to nl.Count - 1 do
      ListBox1.Items.Add(string(nl.Item(i).InnerXml));
end;

procedure TWinForm.ListBox1_DoubleClick(sender: System.Object; e: System.EventArgs);
var
  node : XmlNode;
begin
  if(xmldoc = nil) or
    (ListBox1.SelectedItem = nil) then exit;

  // den Knoten ermitteln, der zum ausgewählten LB-Eintrag
  // gehört
  node := xmldoc.selectSingleNode(
    '//*[name(.)="item"]' +
    '/*[name(.)="title" and text()="' +
    ListBox1.SelectedItem.ToString + '"]' +
    '/../*[name(.)="link"]'
  );

  // und anzeigen
  if(node <> nil) then
    MessageBox.Show(node.InnerText,ListBox1.SelectedItem.ToString);
end;

procedure TWinForm.TWinForm_Closing(sender: System.Object; e: System.ComponentModel.CancelEventArgs);
begin
  if(xmldoc <> nil) then
    xmldoc.Free;
end;
Ist ein RDF-Reader, der mit dieser eingebauten XML-Unterstützung von .NET arbeitet. Ein Blick in das erwähnte Tutorial lohnt sich also trotzdem, weil sich lediglich die Typennamen etwas vom normalen MS-XML-Parser unterscheiden.

mirage228 23. Aug 2004 17:30

Re: XML Datei erstellen
 
Zitat:

Zitat von the_master
Ich habe vergessen zu erwähnen: Ich arbeite mit den .NET Framework :wink:

Der Namespace System.XML sollte dir weiterhelfen. Die Befehle decken sich meines Wissens nach fast zu 100% mit den von MSXML4 - also denen aus Chacks Tutorial. Also -> reinschauen ;)

mfG
mirage228


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