Beispiel - XML Verarbeitung

Inhalt

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;