XmlXpath

Ukázka práce s XML a XPath

Popis

declare function LoadXML dll "ActualDocument" (String): Boolean
declare function GetXMLCount dll "ActualDocument" (String): Integer
declare function GetXMLValue dll "ActualDocument" (String): String
declare function GetLastErrorMessage dll "ActualDocument" (): String

script Example(): Boolean
var
  XmlData: string
  Loaded: Boolean
  NodeCount: Integer
  I: Integer
  NodeValue: string
  XPath: string
begin
  XmlData :=
      "<animals>" +
      "  <animal name=""Dog"">1</animal>" +
      "  <animal name=""Cat"">2</animal>" +
      "  <animal name=""Mouse"">3</animal>" +
      "</animals>"

  Loaded := LoadXML(XmlData)

  if Loaded then
    NodeCount := GetXMLCount("//animal")

    for I := 1 to NodeCount do
      XPath := "//animal[" + I + "]/@name"
      NodeValue := GetXMLValue(XPath)
      write(NodeValue) // Dog, Cat, Mouse
    end
  else
    write(GetLastErrorMessage())

    Result := False
  end

  Result := True
end

Ukázky XPath

XPath Popis
/animals/animal všechny uzly animal v kořenovém uzlu animals
//animal všechny uzly animal v libovolné úrovni dokumentu
/animals//animal všechny uzly animal v libovolné pod-úrovni kořenového uzlu animals
//animal[3] třetí výskyt uzlu animal v dokumentu
//animal/@name atributy name ze všech uzlů animal
//animal[3]/@name atribut name třetího výskytu uzlu animal v dokumentu
//animal[@name="Dog"] všechny uzly animal , které mají atribut name s hodnotou Dog