Es geht auch relativ einfach über eine TXMLDocument-Komponente. Die Funktion
XMLDocument.DOMDocument.GetElementById() wird leider von
MSXML nicht unterstützt, so daß man selbst nach der ID suchen muß. Der Aufwand hält sich aber in Grenzen und ist im Gegensatz zu den RegEx-Lösungen wesentlich flexibler:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
n: Integer;
ID, Tag: IDOMNode;
Tags: IDOMNodeList;
begin
XMLDocument1.XML.Text:=
'
<html>'+
'
<head>'+
'
<title>Daten</title>'+
'
</head>'+
'
<body>'+
'
<p id="Person1">Hanni</p>'+
'
<p id="Person2">Karl</p>'+
'
<p id="Dio">4</p>'+
'
</body>'+
'
</html>';
XMLDocument1.Active:=true;
Tags:=XMLDocument1.DOMDocument.GetElementsByTagName('
*');
for n:=0
to Tags.Length-1
do
begin
Tag:=Tags.Item[n];
ID:=Tag.Attributes.GetNamedItem('
id');
if Assigned(ID)
then ShowMessage(Format('
%s: %s',[ID.NodeValue,Tag.FirstChild.NodeValue]));
end;
end;