xml 文件的節點是標準的樹形結構,可以通過遞迴或者回溯演算法來遍歷所有的節點。
本例使用遞迴演算法為例,製作了2個遍歷 xml 文件的例子。
第乙個例子,給出乙個 xml 節點,遍歷所有子節點-不包括起始節點。
第二個例子,給出乙個 xml 節點,遍歷所給的節點及其下屬的所有子節點。
以上2個示例均列舉出了 xml 文件的標籤屬性和文字值,是比較完整的示例**。
windows頻道
**實驗室
電腦學習社群
菜鳥學院
問吧學吧
回吧function tform1.getxmltree1(nnode: ixmlnode): string;
vari, j: integer;
begin
for i:=0 to nnode.childnodes.count-1 do
begin
s := s + '<' + nnode.childnodes.nodes[i].nodename;
for j:=0 to nnode.childnodes[i].attributenodes.count-1 do
begin
s := s + ' '+ nnode.childnodes[i].attributenodes[j].nodename;
s := s + '="'+ nnode.childnodes[i].attributenodes[j].nodevalue +'"';
end;
s := s + '>';
if nnode.childnodes.nodes[i].istextelement then
s := s + nnode.childnodes.nodes[i].text;
if nnode.haschildnodes and not nnode.childnodes.nodes[i].istextelement then
begin
s := s + #13 + #10;
getxmltree1(nnode.childnodes.nodes[i]);
end;
s := s + '' + #13 + #10;
end;
result := s;
end;
function tform1.getxmltree2(nnode: ixmlnode): string;
vari, j: integer;
begin
s := s + '<' + nnode.nodename;
for j:=0 to nnode.attributenodes.count-1 do
begin
s := s + ' '+ nnode.attributenodes[j].nodename;
s := s + '="'+ nnode.attributenodes[j].nodevalue +'"';
end;
s := s + '>';
if nnode.istextelement then
s := s + nnode.text
else
begin
s := s + #13 + #10;
if nnode.haschildnodes then
for i:=0 to nnode.childnodes.count-1 do
begin
getxmltree2(nnode.childnodes.nodes[i]);
end;
end;
s := s + ''+ #13 + #10;
result := s;
end;
呼叫:procedure tform1.button4click(sender: tobject);
varoxml: txmldocument;
begin
oxml := txmldocument.create(self);
oxml.filename := '_treeview.xml';
oxml.active:=true;
s :='';
s := getxmltree1(oxml.childnodes.findnode('root'));
memo1.lines.add(s);
oxml.free;
end;
procedure tform1.button5click(sender: tobject);
varoxml: txmldocument;
begin
oxml := txmldocument.create(self);
oxml.filename := '_treeview.xml';
oxml.active:=true;
s :='';
s := getxmltree2(oxml.childnodes.findnode('root'));
memo1.lines.add(s);
oxml.free;
end;
Delphi6 7 中XML 文件的應用
xml文件是新一代的web資料格式。它可以用樹的形式儲存一切資料。下面介紹一下txmldocument控制項的一些用法 已定義 xmldoc txmldocument encodermime tidencodermime decodermime tiddecodermime xn ixmlnode ...
遞迴法遍歷xml文件所有節點。
能遍歷出乙個xml文件的所有的節點。module module1 sub main dim ireturn as integer dim myxmldocument as new xmldocument myxmldocument.load books.xml dim mynodes as xmln...
iOS中XML文件解析
1 讀取檔案路徑 nsstring path nsbundle mainbundle pathforresource student oftype txt 2 讀取資料 nsdata data nsdata datawithcontentoffile path 1 開始xml sax解析,需要遵循n...