Xpath是功能很強大的,但是也是相對比較復雜的一門技術,最好還是到博客園上面去專門找一些專業的帖子來看一看,下面是一些簡單的Xpath語法和一個實例,提供給你參考一下。
xml示例:
<?xml version="1.0" encoding="utf-8" ?> <roles> <role order="1"> <roleId>1</roleId> <roleName>一般用戶</roleName> </role> <role order="3"> <roleId>2</roleId> <roleName>測試用戶</roleName> </role> <role order="2"> <roleId>3</roleId> <roleName>中心管理員</roleName> </role> <role order="4"> <roleId>4</roleId> <roleName>系統管理員</roleName> </role> </roles>
說明:如果XPath的開頭是一個斜線(/)代表這是絕對路徑。如果開頭是兩個斜線(//)表示文件中所有符合模式的元素都會被選出來,即使是處於樹中不同的層級也會被選出來
1.選擇第一個role的roleName
示例:/roles/role[1]/roleName 說明:xml中的下標是從1開始的
2.選擇屬性order='2'的角色的節點
示例:/roles/role[@order='2'] 說明:@order表示屬性
3.選擇第一個role的order的值
示例:/roles/role[1]/@order
總結:上面講的都是xpath的語法,但是在C#中怎么使用呢,具體代碼如下:
XmlDocument xml = new XmlDocument(); //實例化一個XmlDocument xml.Load("app.xml"); //根據路徑加載一個xml文檔 //xml中的索引從1開始的 XmlNode node=xml.SelectSingleNode("/roles/role[1]/@order"); 根據xpath返回具體的一個節點,如果相匹配的有多個節點則返回第一個節點,SelectNodes()用語獲得多個節點的集合 MessageBox.Show(node.InnerText); //讀取該節點的相關信息