.Net XPath

摘要:.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]

報告完畢~~