處理 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