- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 可扩展路径语言XPath
8.1 Xpath的基本概念 一、什么Xpath 在XML树的转换过程中需要用到XPath按照W3C在XPath规范中的解释,XPath是在XSLT中用作对XML文档各部分进行定位的语言。 ? Xml version=“1.0” ? !--simple.xml-- !--Simple XML document-- book title=“C++ How to program” edition=“3” simple ![CDATA[ //C++ comment If (this-getX() 5 value[0]!=3) cerr this-displayError(); ]] /simple C++ How to program by Deitel amp;Deitel /book 上面XML文档含有根节点、注释节点、元素节点、属性节点、文本节点等。 图8-1 Xpath的定位和XSLT的转换 XPath把一个XML文档看成一个树,每一个XML的部位(如元素、属性或文本等)均可看作XML文档树的某一个节点。相应的节点类型也有多种,包括元素节点、属性节点和文本节点等。 XPath所提供的功能主要就是如何在XML文档树上定位这些节点。当在XML文档树上找到了与要求相匹配的节点时,通过XSLT将源文档中的匹配部分转换成结果文档。 二、表达式和定位路径 XPath的基本语法由表达式构成。在XPath通过计算表达式的值产生一个对象,该对象的取值为以下四种基本类型之一。 节点集合; 布尔型; 数字型; 字符串型。 一类重要的表达式是定位路径。表达式计算的结果是定位路径从上下文节点中选择的相关节点的集合。 定位路径有两类: 相对定位路径 绝对定位路 1、相对定位路径:由一个或多个定位阶组成,其中用“/”或“//”分隔。 xsl:template match=“/CnGame xsl:value-of select=child::Opponent/ child::Coach/CoachName/ /xsl:template 2、绝对定位路径:最前面必须以“/”开头,后面是可选的相对定位路径。其中“/”表示选择文档的根节点。如果其后跟有相对定位路径,该定位路径将选择相对于根节点的节点集,例如: xsl:template match=/CnGame xsl:value-of select=“/child::CnGame/ child::Opponent/child::Coach/ CoachName/ /xsl:template 从根节点开始,选择节点 CnGame下的Opponent 的子节点Coach的子节点下的 CoachNam元素。 三、定位阶 一个定位路径由用“/”分隔的一个或多个定位阶组成,而定位阶由轴、节点测试、谓词三个部分组成。如下面的例子: xsl:template match=/CnGame xsl:value-of select=child::Opponent[position()=2]/ child::Coach/CoachName/ /xsl:template 其中: “child::Opponent[position()=2]/ child::Coach/CoachName”是定位路径; child::Opponent[position()=2]是其中 的一个定位阶; “child”是轴; “Opponent”为节点测试; “[position()=2]” 是谓词。 1、轴(AXeS) 定义了由定位阶选择的节点和当前节点之间的树型关系。如上述例子中的“Child”就是轴的名称,它表明是当前节点的子节点。 表8-l是轴名称及其对应关系列表。 2、节点测试 节点测试是对轴对应的节点集合进行测试,判断其是否为合适的节点。如果节点测试结果为真,则进行相应的操作。节点测试又可为表8-2所示的几种情况之一。 图与表\表1.doc(轴名称及其对应关系列表) 图与表\表2.doc(节点测试分类表) 3、谓词 根据轴和节点测试得到初始节点后,可以由谓词来做进一步的过滤选
文档评论(0)