2010年2月10日 星期三

XPath On C#

首先~~

在.Net中要先Useing System.XML

先叫用 XmlDocument xd = new XmlDocument();

xd.Load("XML路徑");//載入XML 或用xd.LoadXML("XML字串")

XmlNode xn = xd.FirstChild;//我的習慣會先以Root的Node往下走

接下來就用SelectSingleNode 或者 SelectNodes這兩個Method來進行XPath查詢

一個是回傳一個Node,一個是回傳Node的陣列,各取所需

先大概說明一下XPath語法

符號"/"代表的是絕對路徑,"//"代表的是全部

意思是說當我語法下/A/B/C,此查詢就一定會依循先找到A再找A底下的B再找B底下的C

當語法下//C,此查詢就會把所有C的節點找出來,即是在不同層級的節點

接下來符號*及代表此節點以下全部的節點

當語法下/A/*,則會把節點A底下全部的節點找出來

那如果是下/A/*/C,則會把節點A底下全部含有C子節點的節點找出來

語法為/A/B[1],代表節點A底下的第一個B節點

也可以下/A/B[last()] 或者/A/B[last()-1]取出A節點底下最後一個B節點或倒數第二個B節點

還可以/A[B=123]取出A節點底下B節點內容為123的節點

當然也有邏輯~類似/A/B | /A/C這樣就會取出節點A底下B和C的節點

最後一個就是查詢屬性..當如果我要查詢 name="123"的tag時可以下@name=123

查A節點name=123 時可以下/A[@name=123]


Source:
http://www.wretch.cc/blog/fredxxx123/9959025
http://www.cnblogs.com/lovelace821/archive/2010/01/20/1652223.html
http://www.dotblogs.com.tw/jacky19819/archive/2009/03/25/7691.aspx
http://www.dotblogs.com.tw/yilinliu/archive/2009/01/17/6849.aspx


沒有留言: