C#使用xpath查找xml節點信息


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);   //讀取該節點的相關信息

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM