摘要:.Net XPath
XPath是針對XML的查詢語法~~
因為用的機會不會像SQL那麼平凡~~
害的我這記憶力不好的傢伙~~每次要用的時候要查~~
乾脆記錄起來好了~~
首先~~
在.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的節點
最後一個就是查詢屬性..<A name="123">當如果我要查詢 name="123"的tag時可以下@name=123
查A節點name=123 時可以下/A[@name=123]
報告完畢~~