Using XPath to select nodes with namespace in C# / 在C#中用XPath選取具有namespace之節點

處理 XML 文件資料時,利用 XPath 來選取文件中節點是蠻常見的方式,可是當這個節點是具有 namespace 時,該怎麼辦呢?

一般情況(選取沒有 namespace 之節點 / select nodes without namespace)

XmlDocument xd = new XmlDocument();
XmlNodeList xnl;
xd.Load(xmlfile); 
xnl = xd.SelectNodes(XPath_expression); 

選取有 namespace 之節點 / select nodes with namespace

XmlDocument xd = new XmlDocument();
XmlNodeList xnl;
XmlNamespaceManager xnm;
xd.Load(xmlfile); 
xnm = new XmlNamespaceManager(xd.NameTable);
xnm.AddNamespace("smh", "http://www.google.com/history/"); 
xnl = xd.SelectNodes(XPath_expression, xnm);

 

 

 

Ref: http://weblogs.asp.net/wallen/archive/2003/04/02/4725.aspx

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料