简易版

有xml

//c#代码

//处理节点
//_______________________Menu_________________________________
XmlNodeList nodeList= xmlDoc.SelectNodes("sys_menu/queryForm");

//____________________________________________
        foreach (XmlNode node in nodeList)
        {
            if (node.Attributes != null)
            {
                ///

//获得各个节点的代码
                for (int i = 0; i < node.Attributes.Count; i++)
                {
                    string __name = node.Attributes[i].Name;
                    string __value = node.Attributes[i].Value;
                }
                string code=node.InnerText;//获得CDATA部分的代码

//也可以这样获得获得各个节点的代码

string ID = node.Attributes["ID"].ToString();;
                string Text = node.Attributes["Text"].ToString();;
                string Img = node.Attributes["Img"].ToString();;               
                ///
            }
        }
        //__________________________________________________

原理版

XPath 是XML的查询语言,和SQL的角色很类似。以下面XML为例,介绍XPath 的语法。

 
<?xml version="1.0" encoding="ISO-8859-1"?>
  
    Empire Burlesque
    Bob Dylan
    10.90
  
  
    Hide your heart
    Bonnie Tyler
    9.90
  
  
    Greatest Hits
    Dolly Parton
    9.90
  
 
         

定位节点
XML是树状结构,类似档案系统内数据夹的结构,XPath也类似档案系统的路径命名方式。不过XPath 是一种模式(Pattern),可以选出 XML档案中,路径符合某个模式的所有节点出来。例如要选catalog底下的cd中所有price元素可以用:

 
/catalog/cd/price     
 

如果XPath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来。以下的语法会选出文件中所有叫做cd的元素(在树中的任何层级都会被选出来):

 
//cd
 

选择未知的元素
使用星号(Wildcards,*)可以选择未知的元素。下面这个语法会选出/catalog/cd 的所有子元素:

 
/catalog/cd/*
 

以下的语法会选出所有catalog的子元素中,包含有price作为子元素的元素。

 
/catalog/*/price
 

以下的语法会选出有两层父节点,叫做price的所有元素。

 
/*/*/price
 

以下的语法会选择出文件中的所有元素。

 
//*
 

要注意的是,想要存取不分层级的元素,XPath语法必须以两个斜线开头(//),想要存取未知元素才用星号(*),星号只能代表未知名称的元素,不能代表未知层级的元素。

选择分支
使用中括号可以选择分支。以下的语法从catalog的子元素中取出第一个叫做cd的元素。XPath的定义中没有第0元素这种东西。

 
/catalog/cd[1]
 

以下语法选择catalog中的最后一个cd元素:(XPathj并没有定义 first() 这种函式喔,用上例的 [1]就可以取出第一个元素。

 
/catalog/cd[last()]
 

以下语法选出含有price子元素的所有/catalog/cd元素。

 
/catalog/cd[price]
 

以下语法选出price元素的值等于10.90的所有/catalog/cd元素

 
/catalog/cd[price=10.90]
 

以下语法选出price元素的值等于10.90的所有/catalog/cd元素 的price元素

 
/catalog/cd[price=10.90]/price
 

选择一个以上的路径
使用Or操作数(|)就可以选择一个以上的路径。例如:

 
/catalog/cd/title | catalog/cd/artist
 

选择所有title以及artist元素

 
//title | //artist
 

选择所有title以及artist以及price元素

 
//title | //artist | //price
 

选择属性
在XPath中,除了选择元素以外,也可以选择属性。属性都是以@开头。例如选择文件中所有叫做country的属性:

 
//@country
         

选择所有含有country这个属性的cd元素:

 
//cd[@country]
         

以下语法选择出含有属性的所有cd元素

 
//cd[@*]
         

以下语法选择出country属性值为UK的cd元素

 
//cd[@country='UK']

只要掌握了xpath语法,理论上你就可以访问xml文件中的任意节点和任意值

转载于:https://www.cnblogs.com/hainange/archive/2008/06/10/6153279.html

读取XML-致冷冽同学相关推荐

  1. 个人信息安全保障冷冽现实:内鬼的威胁要远大于黑客

    本文讲的是 个人信息安全保障冷冽现实:内鬼的威胁要远大于黑客, 每隔一段时间,个人信息安全这一话题总会重回公众视线,这一次上了安全圈头条的事件是"50亿条公民信息泄露 京东前员工牵涉其中&q ...

  2. asp.net读取xml方法

    这个适合刚学asp.net的同学,大神直接略过好了,asp.net经常会有很多用到XML的地方,比如全国省市的联动,以及一些菜单读取等等都有xml的影子,直接贴代码,以便我以后用到的时候忘了,注释我写 ...

  3. android读取xml 字符串,Android 读取本地Xml文件,并转换成String

    问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...

  4. SQL Server中读取XML文件的简单做法

    SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...

  5. 【OpenCV 4开发详解】保存和读取XML和YMAL文件

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  6. 在asp.net中读取XML文件信息的4种方法

    方法一 :使用XML控件     <% @ Page Language="C#"%>  <html> <body>         <h3 ...

  7. [转帖]C#执行SQL脚本,读取XML文件

    [转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...

  8. java 存取xml数据_JAVA读取XML文件数据

    XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...

  9. 在C#中使用XML指南之读取XML

    对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式,数据按照这种格式在网络中传 ...

最新文章

  1. CentOS6.3挂载读写NTFS分区
  2. 『前端干货篇』:你不知道的Stylus
  3. windows下使用Hibernate连接Mycat例子
  4. 05: zabbix 监控配置
  5. Java基础 ArrayList和LinkedList的区别和实现原理
  6. captcha must be filled out_直播行业这些英文单词,不知道你就out了
  7. [转载] OpenCV-Python图像位与运算bitwise_and函数详解
  8. Java语言实现查找最长前缀
  9. 外挂技术之-检测和反检测
  10. 74LS138译码器实现2位二进制乘法器-QuartusII 软件仿真
  11. ps中批处理图片压缩
  12. 计算机考试中栏间距怎么弄,word中栏间距怎么设置
  13. vue 接入天地图并且在地图上画基站扇形覆盖物
  14. 南阳OJ 题目97 兄弟郊游问题
  15. OpenCV与图像算法笔记
  16. 抢购茅台,618只能用这种方法
  17. c语言的字符串不是存放,在C语言中,字符串不存放在一个变量中,而是存放在一个中...
  18. 计算机电脑显卡基础知识,基础电脑显卡知识,你还不知道吗?别再被坑了!
  19. 为JY61加入OLED显示系统
  20. 微信支付-通知验签始终不通过的问题

热门文章

  1. Spring MVC中的Model, ModelMap, 和ModelAndView
  2. Linux命令-PV
  3. 华为首次自曝“天才少年”成果:入职不到一年算法研究用于千万台 Mate/P 系列手机,网友:值 200 万年薪
  4. 百词斩秋招java,成都百词斩2018web前端秋招笔试题
  5. php ci log,PHP框架CI CodeIgniter 的log_message开启日志记录方法
  6. 又要数数小绵羊(四刷) kkmd66
  7. java 一天的结束时间_java怎么获取一天的开始时间和结束时间
  8. 【数据库E-R图知识点和相关习题(复试真题)】
  9. 曝新款苹果手机将采用低功耗微处理器,Find My定位在关机状态下也能使用
  10. 欧几里得定理与扩展欧几里得定理