标准网站建设,国外营销型网站设计,网站建设计划建议,想自己做网站流程#xff08;目的在于让大家知道有这个东西的存在#xff09; XPath:即XML Path语言(Xpath)表达式使用路径表示法(像在URL中使用一样)来为XML文档的各部分寻址#xff01; 关于XPath如何使用了#xff0c;我们来看看#xff01;当然这里面的代码只是入门#xff0c;更深层…目的在于让大家知道有这个东西的存在 XPath:即XML Path语言(Xpath)表达式使用路径表示法(像在URL中使用一样)来为XML文档的各部分寻址 关于XPath如何使用了我们来看看当然这里面的代码只是入门更深层次的还待更进一步的了解和学习 既然是操作XML的那我们首先就需要一个xml文件 Student ?xml version1.0 encodinggbk?school version2.0classnames计1/namesstudent types1nameaa/namesexx/sexage21/age/studentstudent types2namebb/namesexy/sexage22/age/studentstudent types3namecc/namesexz/sexage23/age/student/classclassnames计2/namesstudent types4nameaaa/namesexx/sexage21/age/studentstudent types5namebbb/namesexy/sexage22/age/studentstudent types6nameccc/namesexz/sexage23/age/student/class/school 很简单的一个XML下面我们就多这个XML进行操作通过XPATH方式来寻找对应的值 首先是建一个应用程序了看代码 View Code string filePathTest.xml;//创建xml读取对象文档对象?
XmlDocument xmlDocnew XmlDocument();StreamReader sr new StreamReader(filePath);//加载XML文件
xmlDoc.Load(sr);string path */*/*/*; //寻址格式表达式?
XmlNodeList list xmlDoc.SelectSingleNode(path).ChildNodes;foreach (XmlNode node in list){MessageBox.Show(node.InnerText);}sr.Close(); 这比较简单运行的结果就是第一个*号代表school第二个*号代表class 第三个*号代表names或students 第四个*代码的就是name默认第一个所以输出的值是aa那么我们想输出属于计2班的第一个人的姓名怎么办 string path */*/*[types4]/*; 我们的表达式就要这样写了我们要找到最后一个了 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 version2.0 schNameschool/schName class 我们来写XSL后缀的文件 格式定义如下 XSLT xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transformxsl:template match/HTMLheadtitlename:xsl:value-of selectschool/schName//title/headbodytable border1xsl:apply-templates//table /body /HTML/xsl:templatexsl:template matchschoolxsl:apply-templates selectclass//xsl:templatexsl:template matchclasstrtd colspan3class:xsl:value-of selectnames//td/trxsl:for-each selectstudenttrtdname:xsl:value-of selectname//tdtdsex:xsl:value-of selectsex//tdtdage:xsl:value-of selectage//td/tr/xsl:for-each/xsl:template/xsl:stylesheet 最开始就是一个头文件了然后在就是一个模板定义了/代表的是当前的要转换的XML 然后紧跟着的就是HTML代码了在接着就是title了xsl:value-of selectschool/schName/这句话就是查询了值并显示了怎么查询就是按XPath的语法查询了查询当前XML文本下school/schName的值了 然后在就是表格里面的值了一样的因为我们知道XPth所以事情就好办多了然后同样的是找到班级的值了一个班级可能有很多人我们要通过循环来找出班级里面的学生了 语言都是神奇的XSTL中也有循环嘿嘿xsl:for-each selectstudentselect指的是要循环的节点了恩OK了现在XML和XSTL文件都写好怎么转换了我们用到 View Code 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:很早之前在空间写的文章因为要为后面的文章作铺垫所以提过来了) 转载于:https://www.cnblogs.com/RegicideGod/archive/2012/08/07/2627436.html