C XML解析方式例項解析 帶命名空間的

2021-09-08 09:09:24 字數 2444 閱讀 4913

c# xml解析通過xpath的方式的步驟:

1、需要先載入文件,然後再讀取想要的節點值。

◆xml文件

protected xmldocument doc = null;

◆xml文件的根元素(節點)

protected xmlelement root = null;

◆xml文件的名空間管理器

protected xmlnamespacemanager nsmgr = null;

2、接下來就是載入文件了

protected

void loadxmlfile(fileinfo xmlfile)

。",

xmlfile.fullname));

} //載入檔案

this.doc = new xmldocument();

doc.load(xmlfile.fullname);

//準備讀取檔案

root = doc.documentelement;

string namespace = root.namespaceuri;

nsmgr = new xmlnamespacemanager(doc.nametable);

nsmgr.addnamespace("ns", namespace);

} ◆c# xml解析通過xpath的方式要注意。

a、這兩行是取得xml文件的名空間

root = doc.documentelement;

string namespace = root.namespaceuri;

b、這兩行是建立xml文件的名空間管理器

nsmgr = new xmlnamespacemanager(doc.nametable);

nsmgr.addnamespace("ns", namespace);

如果你的xml文件有名空間,則這部分的**是必不可少的。

3、接下來就是讀取文件節點的值了

這裡兩個傳入引數prefixpath是節點的上級節點路徑,xrelativepath是要讀取的節點名稱。

另外,變數xmlfileinfo是要載入的xml檔案。

protected

string getnodevalue(

string prefixpath, string xrelativepath)

string xpath = string.empty;

if (!string.isnullorempty(xrelativepath))

else }

xpath = xpath.replace("/", "/ns:");

xmlnode node = root.selectsinglenode(xpath, nsmgr);

if (node == null)

return node.innerxml;

} 可能有的朋友要問,為什麼要設定兩個引數prefixpath和xrelativepath呢,其實這個沒有多大的關係,我只是為了自己覺得方便,你也可以在方法外確定了這個xpath,在方法中只設定乙個傳入引數,效果是一樣的。

◆注意這一行:

xpath = xpath.replace("/", "/ns:");

如果你的xml文件帶名空間,則這行是比不可少的,否則會出現找不到節點,無法解析的情況。

關於xpath的一些問題:

對於這樣乙個xml文件,要查詢第乙個節點下的學生的name時(id=01),其xpath應該是"/ns:root/ns:students/ns:student[1]/ns:name"。xml對於重複的節點名稱,是按照順序1,2,3...的方式遍歷的,也就是說如果要找第n個student節點的下的節點之,那麼應使用student[n]的標識方式。

﹤?xml version="1.0"

encoding="utf-8" ?﹥

﹤root xmlns="urn:classnamespace"﹥

﹤class﹥

﹤classid﹥1234﹤/classid﹥

﹤/class﹥

﹤students﹥

﹤student﹥

﹤id﹥01﹤/id﹥﹤name﹥name01﹤/name﹥

﹤/student﹥

﹤student﹥

﹤id﹥02﹤/id﹥﹤name﹥name02﹤/name﹥

﹤/student﹥

﹤/students﹥

﹤/root﹥

當然,這裡也可以獲取節點屬性的值,查詢滿足特定值的節點等等,這些和上面獲取節點值的過程是類似的。

c# xml解析通過xpath的方式的實現就向你介紹到這裡,希望對你了解和學習c# xml解析有所幫助。

C XML解析方式例項解析

c xml解析通過xpath的方式是如何辦到的呢?具體的操作步驟是什麼呢?那麼下面我們就向你介紹通過xpath的方式來實現c xml解析,希望對你了解c xml解析有所幫助。c xml解析通過xpath的方式的步驟 1 需要先載入文件,然後再讀取想要的節點值。xml文件 protected xmld...

C XML解析方式例項解析

c xml解析通過xpath的方式是如何辦到的呢?具體的操作步驟是什麼呢?那麼下面我們就向你介紹通過xpath的方式來實現c xml解析,希望對你了解c xml解析有所幫助。c xml解析通過xpath的方式的步驟 1 需要先載入文件,然後再讀取想要的節點值。xml文件 protected xmld...

C XML解析方式例項解析1

c xml解析通過xpath的方式是如何辦到的呢?具體的操作步驟是什麼呢?那麼下面我們就向你介紹通過xpath的方式來實現c xml解析,希望對你了解c xml解析有所幫助。c xml解析通過xpath的方式的步驟 1 需要先載入文件,然後再讀取想要的節點值。xml文件 protected xmld...