delphi7递归实现读XMl结点的函数(200)

  • 主题发起人 主题发起人 nfsong
  • 开始时间 开始时间
N

nfsong

Unregistered / Unconfirmed
GUEST, unregistred user!
有谁知道用delphi7递归实现读XMl结点的函数,XMl中结点有重复的属性,但值不相同。我没搞出来,
 
根据属性名称不可以的话,改为根据属性的顺序号读取。
 
procedure TForm1.XMLRecursion(const ARootNode: IXMLNode);var Node, SiblingNode: IXMLNode;begin Node := ARootNode; while (Node <> nil) do begin // 记录下 Node 的下一个兄弟节点 SiblingNode := Node.NextSibling; // 处理当前节点(Node) // ----------------------------- // ...... 你的对节点处理代码 ......... // ----------------------------- if Node.HasChildNodes then begin Node := Node.ChildNodes.First; // 递归 XMLRecursion(Node); end; // 再把 兄弟节点 转接过来, 继续遍历 Node := SiblingNode; end;end;procedure TForm1.btn1Click(Sender: TObject);var XmlName: string; XMLDoc: TXMLDocument; RootNode, Node, SiblingNode: IXMLNode;begin XmlName := '你的 Xml 文件名!'; if SysUtils.FileExists(XmlName) then begin XMLDoc := TXMLDocument.Create(nil); try XMLDoc.LoadFromFile(XmlName); RootNode := XMLDoc.DocumentElement; XMLRecursion(RootNode); finally XMLDoc.Free; end; end;end;
 
后退
顶部