XMLDocument方式讀取XML檔案 樹結構

2021-06-03 13:16:30 字數 2135 閱讀 5471

本筆記計畫總結xmldocument方式讀取xml檔案並與readxml 方式進行對比

功能需求:

提供路線表,包含路線及路線內站台資訊。提供實際得到的路線及站台號資訊,核對該站台號是否在該路線中(以路線表為標準)

需求分析:

先用xmldocument讀取路線資訊,建立樹結構。用提供的路線迴圈對比樹結構中的路線節點,找到後再用提供的站台資訊迴圈對比樹結構中該路線節點下的站台子節點

能夠找到判定為合法站台號,找不到判定為非法站台號

具體實現:

路線表資訊

<?xml version="1.0" encoding="utf-8" ?>

讀路線表建立樹結構

xmldocument readxml = new xmldocument();

readxml.load(routefilepath + @"\route.xml");

讀取路線節點資訊

routenodelist = readxml.selectsinglenode("/aaaaaa/routes").childnodes;

迴圈對比路線節點

foreach (xmlnode routenode in routenodelist)

}找到路線後迴圈對比站台號

xmlnodelist stopnodelist = routeelement.selectsinglenode("stops").childnodes;

foreach (xmlnode stopnode in stopnodelist)

}需求搞定。

用到的知識點:

xmldocument 宣告並初始化

xmldocument readxml = new xmldocument();

讀取資料readxml.load(routefilepath + @"\route.xml");

查詢節點並儲存在xmlnodelist型別的routenodelist中

routenodelist = readxml.selectsinglenode("/aaaaaa/routes").childnodes;

用到selectsinglenode方法,選擇匹配 "/aaaaaa/routes") 表示式的第乙個 xmlnode

xmlnode.childnodes方法得到子節點列

xmlelement routeelement = (xmlelement)routenode;將節點轉換為元素型別

routeelement.getattribute("route_code")得到route中屬性route_code的值

完整**

using system;

using system.collections.generic;

using system.text;

using system.xml;

namespace buactionexplain

public bool selectrfid(xmlnodelist routenodelist,string routecode, string rfidno)}}

}return false;}}

}開始時不知道還有xmldocument這個東西,想用dataset中的readxml方法,上網查詢後發現xmldocument方法最簡潔有效。

應為如果用dataset中的readxml方法,將會讀出6個表,而路線表和站台號表還要建立關聯什麼的,很複雜。

綜上,xmldocument這個東西很好用

最近又學到了類似的東東還有:

xmltextreader------提供以快速、單向、無緩衝的方式訪問xml資料。(單向意味著你只能從前往後讀取xml檔案,而不能逆向讀取)

xmlvalidatingreader------與xmltextreader類一起使用,提供驗證dtd、xdr和xsd架構的能力。

xmldocument------遵循w3c文件物件模型規範的一級和二級標準,實現xml資料隨機的、有快取的訪問。一級水平包含了dom的最基本的部分,而二級水平增加多種改進,包括增加了對命名空間和級連狀圖表(css)的支援。

xmltextwriter------生成遵循 w3c xml 1.0 規範的xml檔案。

資訊來自於:

文章說xmltextreader對資源要求更小,沒仔細研究,先記下來。

delphi中xmldocument物件使用方法

delphi 中的 xmldocument 類詳解 21 暫停 delphi 中的 xmldocument 類詳解 20 動態建立 xmldocument 物件 delphi 中的 xmldocument 類詳解 19 nodevalue 與 nodename 的讀寫區別 delphi 中的 xml...

XmlDocument建立XML文件

建立乙個空的xml文件 xmldocument xmldoc new xmldocument 在xml文件最頭部加入xml的宣告段落 xmlnode xmlnode xmldoc.createnode xmlnodetype.xmldeclaration,增加注釋 xmlcomment xmlcom...

檔案讀取方式

過程 1.開啟檔案 2.讀資料 3.關閉檔案 1,w 寫模式,它是不能讀的,如果用w模式開啟乙個已經存在的檔案,會清空以前的檔案內容,重新寫 w 是讀寫內容,只要沾上w,肯定會清空原來的檔案 2,r 讀模式,只能讀,不能寫,而且檔案必須存在 r 是讀寫模式,只要沾上r,檔案必須存在 3,a 追加模式...