读取XML-致冷冽同学
简易版
有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-致冷冽同学相关推荐
- 个人信息安全保障冷冽现实:内鬼的威胁要远大于黑客
本文讲的是 个人信息安全保障冷冽现实:内鬼的威胁要远大于黑客, 每隔一段时间,个人信息安全这一话题总会重回公众视线,这一次上了安全圈头条的事件是"50亿条公民信息泄露 京东前员工牵涉其中&q ...
- asp.net读取xml方法
这个适合刚学asp.net的同学,大神直接略过好了,asp.net经常会有很多用到XML的地方,比如全国省市的联动,以及一些菜单读取等等都有xml的影子,直接贴代码,以便我以后用到的时候忘了,注释我写 ...
- android读取xml 字符串,Android 读取本地Xml文件,并转换成String
问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...
- SQL Server中读取XML文件的简单做法
SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...
- 【OpenCV 4开发详解】保存和读取XML和YMAL文件
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
- 在asp.net中读取XML文件信息的4种方法
方法一 :使用XML控件 <% @ Page Language="C#"%> <html> <body> <h3 ...
- [转帖]C#执行SQL脚本,读取XML文件
[转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...
- java 存取xml数据_JAVA读取XML文件数据
XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...
- 在C#中使用XML指南之读取XML
对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式,数据按照这种格式在网络中传 ...
最新文章
- CentOS6.3挂载读写NTFS分区
- 『前端干货篇』:你不知道的Stylus
- windows下使用Hibernate连接Mycat例子
- 05: zabbix 监控配置
- Java基础 ArrayList和LinkedList的区别和实现原理
- captcha must be filled out_直播行业这些英文单词,不知道你就out了
- [转载] OpenCV-Python图像位与运算bitwise_and函数详解
- Java语言实现查找最长前缀
- 外挂技术之-检测和反检测
- 74LS138译码器实现2位二进制乘法器-QuartusII 软件仿真
- ps中批处理图片压缩
- 计算机考试中栏间距怎么弄,word中栏间距怎么设置
- vue 接入天地图并且在地图上画基站扇形覆盖物
- 南阳OJ 题目97 兄弟郊游问题
- OpenCV与图像算法笔记
- 抢购茅台,618只能用这种方法
- c语言的字符串不是存放,在C语言中,字符串不存放在一个变量中,而是存放在一个中...
- 计算机电脑显卡基础知识,基础电脑显卡知识,你还不知道吗?别再被坑了!
- 为JY61加入OLED显示系统
- 微信支付-通知验签始终不通过的问题
热门文章
- Spring MVC中的Model, ModelMap, 和ModelAndView
- Linux命令-PV
- 华为首次自曝“天才少年”成果:入职不到一年算法研究用于千万台 Mate/P 系列手机,网友:值 200 万年薪
- 百词斩秋招java,成都百词斩2018web前端秋招笔试题
- php ci log,PHP框架CI CodeIgniter 的log_message开启日志记录方法
- 又要数数小绵羊(四刷) kkmd66
- java 一天的结束时间_java怎么获取一天的开始时间和结束时间
- 【数据库E-R图知识点和相关习题(复试真题)】
- 曝新款苹果手机将采用低功耗微处理器,Find My定位在关机状态下也能使用
- 欧几里得定理与扩展欧几里得定理