pugi如何使用xpthjquery创建节点点

战争是什么。战争就是流血,战争就是杀人。你不杀死他,他就杀死你。你不戳穿敌人的肚皮,他就戳穿你的肚皮。当你倒下去爬起来看看脸上粘的不是泥土,而是你队友的肠油,你就知道怎么干了。用敌人的肠油和鲜血润滑我们的坦克履带吧!这就是战争
(目的在于让大家知道有这个东西的存在)
XPath:即XML Path语言(Xpath)表达式使用路径表示法(像在URL中使用一样)来为XML文档的各部分寻址!
关于XPath如何使用了,我们来看看!当然这里面的代码只是入门,更深层次的还待更进一步的了解和学习!
既然是操作XML的那我们首先就需要一个xml文件!
&?xml version="1.0" encoding="gbk"?&
&school version="2.0"&
&names&计1&/names&
&student types='1'&
&name&aa&/name&
&sex&x&/sex&
&age&21&/age&
&/student&
&student types='2'&
&name&bb&/name&
&sex&y&/sex&
&age&22&/age&
&/student&
&student types='3'&
&name&cc&/name&
&sex&z&/sex&
&age&23&/age&
&/student&
&names&计2&/names&
&student types='4'&
&name&aaa&/name&
&sex&x&/sex&
&age&21&/age&
&/student&
&student types='5'&
&name&bbb&/name&
&sex&y&/sex&
&age&22&/age&
&/student&
&student types='6'&
&name&ccc&/name&
&sex&z&/sex&
&age&23&/age&
&/student&
很简单的一个XML下面我们就多这个XML进行操作!通过XPATH方式来寻找对应的值!
首先是建一个应用程序了,看代码
string filePath="Test.xml";
//创建xml读取对象(文档对象)?
XmlDocument xmlDoc=new XmlDocument();
StreamReader sr = new StreamReader(filePath);
//加载XML文件
xmlDoc.Load(sr);
string path = "*/*/*/*";
//寻址格式表达式?
XmlNodeList list = xmlDoc.SelectSingleNode(path).ChildN
foreach (XmlNode node in list)
MessageBox.Show(node.InnerText);
sr.Close();
&这比较简单!运行的结果就是第一个*号代表school,第二个*号代表class 第三个*号代表names或students 第四个*代码的就是name默认第一个!所以输出的值是aa!那么我们想输出属于计2班的第一个人的姓名怎么办?
string path = "*/*/*[@types='4']/*";
我们的表达式就要这样写了!我们要找到最后一个了
string path = "*/*[last()]/*[last()]/*";
&还可以具体指定,比如我要知道第二个班级的第二个学生的姓名
string path = "school/class[2]/student[2]/*[1]";&&& 等同于
string path = "*/*[2]/*[3]/*[1]";
大家可能疑惑,*代码表的是下面所有的节点的第几个节点!而上面的是指定了是student节点的第二个节点了!
道理到时相通的!知道了简单的语法了!其他的就好说了!
&&&&&&&& 其他的语法了我们就要问我们的MSDN了,我们在MSDN中搜索XPath就可以得到相关的语法知识了!所以XPath并没有想象中的那么难!还等什么大家动手试下吧!下面我们来看下XStl吧!也不是很难!
XSLT:可扩展标记语言转换(XSTL)可以将源XML文档的内容转换为另一个格式或结构不同的文档。例如可以用XSTL将XML转换为网站上使用的HTML或转换为只包含应用陈旭所需字段文档。
首先我们用XSTL来做这样一件事,就是将一个XML中的数据转到HTML上面去
我们用的还是上面刚用到的XML吧!我们只加一个节点就是学校名字
&school version="2.0"&
&&&&&&&& &schName&school&/schName&
&&&&&&&& &class&
&我们来写XSL后缀的文件
格式定义如下
&xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&
&xsl:template match="/"&
&title&name:&xsl:value-of select="school/schName"/&&/title&
&table border='1'&
&xsl:apply-templates/&
&/xsl:template&
&xsl:template match="school"&
&xsl:apply-templates select="class"/&
&/xsl:template&
&xsl:template match="class"&
&td colspan='3'&class:&xsl:value-of select="names"/&&/td&
&xsl:for-each select="student"&
name:&xsl:value-of select="name"/&
sex:&xsl:value-of select="sex"/&
age:&xsl:value-of select="age"/&
&/xsl:for-each&
&/xsl:template&
&/xsl:stylesheet&
最开始就是一个头文件了!然后在就是一个模板定义了!/代表的是当前的要转换的XML
然后紧跟着的就是HTML代码了!在接着就是title了!&xsl:value-of select="school/schName"/&这句话就是查询了值并显示了!怎么查询,就是按XPath的语法查询了!查询当前XML文本下school/schName的值了!
&&&&&&&& 然后在就是表格里面的值了一样的,因为我们知道XPth所以事情就好办多了!然后同样的是找到班级的值了!一个班级可能有很多人,我们要通过循环来找出班级里面的学生了!
语言都是神奇的,XSTL中也有循环嘿嘿!&xsl:for-each select="student"&select指的是要循环的节点了!恩OK了!现在XML和XSTL文件都写好!怎么转换了!我们用到
XslCompiledTransform trans = new XslCompiledTransform();
trans.Load("books.xsl");
trans.Transform("Test.xml", "out.html");
Out.html不一定要是存在或不存在的!恩& 运行OK看下效果图
哈哈,OK!这就是XPath和XSLT了!当然关于XSLT的语法还有很多,同样我们在MSDN中输入XSL就会出现很多像xsl:if、xsl:copy啊等一些语法元素了!网上也有很多相关的元素帮助说明!
(ps:很早之前在空间写的文章,因为要为后面的文章作铺垫,所以提过来了)
阅读(...) 评论()怎么可 - 歌单 - 网易云音乐
终于心甘情愿 放弃团圆 随着岁月变迁
播放:3446次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:XPath 教程
XPath 教程
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
因此,对 XPath 的理解是很多高级 XML 应用的基础。
XPath 参考手册
在 W3School,我们提供完整的 XPath 2.0、XQuery 1.0 和 XSLT 2.0 的内置函数参考手册。
本章讲解 XPath 的概念。
本章详细介绍 XPath 中不同类型的节点,以及节点之间的关系。
本章讲解 XPath 的语法。
本章讲解 XPath axes(轴)。
本章列出了可以用于 XPath 表达式的运算符。
本章使用 &books.xml& 文档来演示一些 XPath 实例。
本文内容包括在本教程所学知识的一个总结,以及我们向你推荐的下一步应该学习的内容。
XPath 参考手册
XPath 2.0、XQuery 1.0 和 XSLT 2.0 的内置函数。}

我要回帖

更多关于 jq创建节点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信