Delphi解析XML节点的问题

zuocune 2014-08-08 11:44:54
XML如下:

这是我取节点的代码:

procedure TForm1.Button3Click(Sender: TObject);
VAR
I,j:INTEGER;
begin
i := 0;
j := strtoint( AcceptXml.DocumentElement.ChildNodes[0].ChildNodes['head'].ChildNodes['rownum'].Text);
while i<j do
begin
Memo1.Lines.Add(AcceptXml.DocumentElement.ChildNodes[1].ChildNodes['item'].ChildNodes['xtlb'].Text);
Memo1.Lines.Add(AcceptXml.DocumentElement.ChildNodes[1].ChildNodes['item'].ChildNodes['dmsm1'].Text);
Memo1.Lines.Add(AcceptXml.DocumentElement.ChildNodes[1].ChildNodes['item'].ChildNodes['dmlb'].Text);
i:=i+1;
end;
end;


XML中每条数据用ID来区分 -<item id="0"> -<item id="1"> -<item id="2"> -<item id="3"> -<item id="4">...-<item id="5">
我不知道该怎么区分ID,然后通过循环来取出节点信息。
...全文
238 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2014-08-10
  • 打赏
  • 举报
回复
建议: 1、使用Delphi的TXMLDocument控件来分拆XML文件数据。 2、或使用第三方控件TNativeXml。
lhy 2014-08-09
  • 打赏
  • 举报
回复
尽量不要用同样的名字。
Y.A.K.E 2014-08-09
  • 打赏
  • 举报
回复
有个第三方的库汀好用的 superxmlparser.pas
虎子8 2014-08-09
  • 打赏
  • 举报
回复
tmpNode=AcceptXml.DocumentElement.ChildNodes['body'] 可以用tmpNode.nodecount与rownum是否相等验证一下 for i:=0 to tmpNode.nodecount do begin tmpNode.ChildNodes[i] //这就是你要取的每一个item end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧