Also, man muss zuerst mal aus dem Fragment ein komplettes
XML Dokument machen.
Dann kann man mit
XPath die Attribute ganz bequem auslesen:
Ich weiss jetzt nicht, welcher Parser verwendet wird (und kenne eigentlich nur
MSXML) aber hier
mein Vorschlag:
Delphi-Quellcode:
function GetXmlAttribute(XMLContent, Attribut :
String) :
String;
var
xmlDoc : XmlDocument;
root, child : XmlElement;
node : XmlNode;
i, j : Integer;
found : Boolean;
begin
xmlDoc = := CoDOMDocument40.Create;
XMLContent := '
<?xml version="1.0" encoding="iso-8859-1" standalone="yes">'+ '
<root>' +
XMLContent+ '
</MatchStats></root>';
xmlDoc.LoadXML(XMLContent);
// Achtung: hier muss unbedingt eine Fehlerprüfung erfolgen
// if xmlDoc.parseError.ErrCode <> 0 then (* Fehler *)
root := xmlDoc.DocumentElement;
// Wurzel Element holen
// wir verwenden einfach XPATH, um das Attribut auszulesen
node := root.selectSingleNode('
//MatchStats/@'+Attribut);
if Assigned(node)
then
result := node.Value
else
result := '
';
end;
Nachtrag: der XPath-Ausdruck war noch falsch. Danke an marabu.