In diesen Beispielen werden die grundlegenden Funktionen des Microsoft XML DOM Parsers vorgestellt.
Beispiel 1
Erstellen des OLE Objects, Iterierung über alle Knoten der ersten Ebene und Ausgabe der Knoteninhalte.
xmld := CreateOleObject('microsoft.xmldom');
if xmld.Load('c:\temp\orders.xml') then
begin
nodel := xmld.DocumentElement.ChildNodes;
for i := 1 to nodel.Length do
begin
node := nodel.Item(i-1);
nodec := node.ChildNodes;
ShowMessage (nodec.Item(0).Text);
end;
end;
xmld := unassigned;
Beispiel 2
Erstellen des OLE Objects, direkte Auswahl eines Knotens über XPATH und Ausgabe des Knoteninhalts.
xmld := CreateOleObject('microsoft.xmldom');
XMLString := '<xml version=...';
if xmld.LoadXML(XmlString) then
begin
node := xmld.selectSingleNode('/ORDERS/ITEMS/PRODUCT');
ShowMessage (node.text);
end;
xmld := unassigned;
Beispiel 3
Erweitertes Beispiel 2 um eine Funktion GetXMLNodeAttributeValue welche den Inhalt eines angegebenen Knotenattributs zurückliefert.
function GetXMLNodeAttributeValue(Node : Variant; Name : String) : String;
begin
Result := '';
Name := uppercase(Name);
for i:=1 to Node.Attributes.Length do
begin
mNode := Node.Attributes(i-1);
if uppercase(mNode.name) = Name then
begin
Result := mNode.text;
break;
end;
end;
end;
begin
XMLString := '’;
if LoadFileToString('c:\temp\example.xml',XMLString) = true then
begin
xmld := CreateOleObject('microsoft.xmldom');
if xmld.LoadXML(XmlString) then
begin
node := xmld.selectSingleNode('/ORDERS/ITEMS/PRODUCT');
ShowMessage( GetXMLNodeAttributeValue(node,'PRODUCTID') );
end;
xmld := unassigned;
end;
end;