Delphi解析XML节点的有关问题
Delphi解析XML节点的问题
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,然后通过循环来取出节点信息。
------解决方案--------------------
tmpNode=AcceptXml.DocumentElement.ChildNodes['body']
可以用tmpNode.nodecount与rownum是否相等验证一下
for i:=0 to tmpNode.nodecount do
begin
tmpNode.ChildNodes[i] //这就是你要取的每一个item
end;
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,然后通过循环来取出节点信息。
------解决方案--------------------
tmpNode=AcceptXml.DocumentElement.ChildNodes['body']
可以用tmpNode.nodecount与rownum是否相等验证一下
for i:=0 to tmpNode.nodecount do
begin
tmpNode.ChildNodes[i] //这就是你要取的每一个item
end;