Thema: Prism XML Datei erstellen

Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: XML Datei erstellen

  Alt 23. Aug 2004, 18:20
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.
  Mit Zitat antworten Zitat