Aus Stringlist XML Node extrahieren

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Aus Stringlist XML Node extrahieren

Beitrag von DL3AD »

Hallo,

ich möchte aus verschiedenen Stringlisten Werte von XML Node extrahieren.
Beispiel einer Stringlist

Code: Alles auswählen

<?xml version="1.0"?>
<HamQTH version="2.6" xmlns="http://www.hamqth.com">
    <session>
        <session_id>5dd2e06b8c509aec888da5cc9999ce15a2843193</session_id>
    </session>
</HamQTH>

Wie kann ich nun mit DOM oder readxml z.B. die session_id in eine String extrahieren ?
Das XML Tutorial im Wiki habe ich gelesen - komme aber nicht weiter.

Gruß Frank

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Aus Stringlist XML Node extrahieren

Beitrag von wp_xyz »

Code: Alles auswählen

uses
  laz2_dom, laz2_xmlread;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  doc: TXMLDocument;
  node: TDOMNode;
  stream: TStream;
begin
  Label1.Caption := 'Node "session_id" nicht gefunden';
  stream := TStringStream.Create(Memo1.Lines.Text);
  try
    ReadXMLFile(doc, stream);
  finally
    stream.Free;
  end;
  node := doc.FirstChild;   // HAMQTH
  node := node.FindNode('session');
  if node <> nil then begin
    node := node.FindNode('session_id');
    if node <> nil then
      Label1.Caption := node.FirstChild.NodeValue;
  end;
  doc.Free;
end;

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Aus Stringlist XML Node extrahieren

Beitrag von DL3AD »

... Danke - es funktioniert.

Antworten