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...