NativeXml (4):认识根节点



uses NativeXml;



const

  xmlFile = 'C:\Temp\xml_test_files\basic.xml'; //测试文件



var

  xml: TNativeXml;



procedure TForm1.FormCreate(Sender: TObject);

begin

  xml := TNativeXml.Create(nil);

  xml.LoadFromFile(xmlFile);

end;



{获取根节点的类名及类的继承关系}

procedure TForm1.Button1Click(Sender: TObject);

var

  str: string;

  myClass: TClass;

begin

  ShowMessage(xml.Root.ClassName); //TsdElement



  str := '';

  myClass := xml.Root.ClassType;

  while myClass <> nil do

  begin

    if str <> '' then str := ' > ' + str;

    str := myClass.ClassName + str;

    myClass := myClass.ClassParent;

  end;

  ShowMessage(str); //TObject > TPersistent > TDebugPersistent > TXmlNode > TsdContainerNode > TsdElement

end;



{根节点的名称与内容}

procedure TForm1.Button2Click(Sender: TObject);

var

  root: TsdElement;

begin

  root := xml.Root;

  ShowMessage(root.Name);            //名称

  ShowMessage(root.ElementTypeName); //类型名称

  ShowMessage(root.WriteToString);   //内容

end;



{其子成员}

procedure TForm1.Button3Click(Sender: TObject);

var

  root: TsdElement;

  i: Integer;

begin

  root := xml.Root;

  ShowMessage(IntToStr(root.AttributeCount)); //属性总数

  ShowMessage(IntToStr(root.NodeCount));      //子节点数目



  Memo1.Clear;

  for i := 0 to root.NodeCount - 1 do //遍历子节点

  begin

    Memo1.Lines.Add(root[i].Name + #9 + root[i].Value); // root[i] = root.Nodes[i]

  end;

end;


你可能感兴趣的:(native)