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;