知识大全 XPath语法

Posted 元素

篇首语:笔落惊风雨,诗成泣鬼神。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 XPath语法相关的知识,希望对你有一定的参考价值。

XPath语法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   XPath的语法    我们在前面已经提到过 XPath是用来帮助XSLT在XML源文档中查找定位信息的语言 在实际使用过程中 XPath和XSLT总是混在一起使用 在上面一章的语法例子中我们已经有使用到XPath的语法 只是没有明确点出 但W C将它们分成两个标准 所以我们也将它们拆成两章来讲解

   XPath的语法

   当前位置    寻址操作    运算符    功能函数

   当前位置

  当我们使用XSLT处理XML源文档是 我们用Context来表示当前正在被模板处理的节点位置 比如xsl:template match= / 语句中表示Context在文档的根(root)节点 我不知道如何准确的翻译Context这个词 它类似于C语言里的指针 表示程序当前运行的位置 理解Context对于正确处理XSL模板非常重要 当您的XSL模板输出的文档和您想要的不一样 最先应该分析的就是Context在哪里     Location Paths是用于设定你想要寻找的Context节点位置 就类似DOS的目录命令 我们看个例子

  <xsl:for each select= child::PEOPLE/descendant::PERSON >

  其中child::PEOPLE/descendant::PERSON就是XPath语法 这个表达式就是一个Location Paths 代码说明要显示所有PEOPLE元素的子元素和所有PERSON元素的子元素 通常我们会采用更简单的写法

  <xsl:for each select= PEOPLE//PERSON >

  我们来解释path的两种表示方法 / 和 //     / 是表示当前文档的节点 类似DOS目录分割符 例如 /PEOPLE表示选择根节点下的PEOPLE元素 PEOPLE/PERSON表示选择PEOPLE元素下所有的PESON子元素     // 则表示当前文档所有的节点 类似查看整个目录 例如 //PEOPLE表示选择文档中所有的PEOPLE元素 无论它在什么层次 PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON元素 无论它的层次多深

   寻址操作

  Axis和Predicate是XPath语法中对Location Paths进行定位操作的语法 具体的用法列表如下

  Axis语法表        表达式 简写 说明        self 选择当前的节点     例子 :    <TD><xsl:value of select= /></TD>    代码表示在当前位置插入当前的节点包含的文本(text)值         parent 选择当前节点的父节点         attribute @ 选择一个元素的所有属性     例子:    <TD><xsl:value of select= @PERSONID /></TD>    选择PERSON元素的所有属性         child 选择当前节点的所有子元素         ancestor 选择当前节点的所有父元素(包括父元素的父元素 类推)   

  Axis帮助我们选择当前节点周围所有的节点 而Predicate则用来定位当前节点内部的元素 表示方法为方括号[]中加表达式 [ Expression ] 具体举例如下:

  PERSON[position()= ]    这句代码表示寻找第二个 PERSON 元素

  PERSON[starts with(name B )]    这句代码表示寻找所有名称以 B 开头的PERSON元素

   运算符

  这一节介绍XPath的运算符(Expressions) 列表如下         运算符 说明        and or 就是普通意义的and or        = 等于        != 不等于        > >= 大于 大于等于        < <= 小于 小于等于 注意 在XSL文件中 <符号要用< 表示        * div 加减乘除        mod 取模        | 两个节点一起计算   

   功能函数(Functions)

  在XPath里有很多功能函数可以帮助我们精确寻找需要的节点

  count()功能    作用 统计计数 返回符合条件的节点的个数     举例 <p><xsl:value of select= count(PERSON[name=tom]) /></p>    说明 代码的用途是显示PERSON元素中姓名属性值为tom有几个

  number()功能    作用 将属性的值中的文本转换为数值     举例 <p>The number is: <xsl:value of select= number(book/price) /></p>    说明 代码的用途是显示书的价格

  substring() 功能    语法 substring(value start length)    作用 截取字符串     举例 <p><xsl:value of select= substring(name ) /></p>    说明 代码的用途是截取name元素的值 从第一个字母开始显示到第三个

  sum()功能    作用 求和     举例 <p>Total Price = <xsl:value of select= sum(//price) /></p>    说明 代码的用途是计算所有价格的和

  上面这些功能只是XPath语法中的一部分 还有大量的功能函数没有介绍 而且目前XPath的语法仍然在不断发展中 通过这些函数我们可以实现更加复杂的查询和操作

cha138/Article/program/ASP/201311/21862

相关参考

知识大全 使用XPath命名空间中的类[2]

C#高级编程:使用XPath命名空间中的类[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 XPath查询XML文档的注意事项

XPath查询XML文档的注意事项  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!老鼠与人最好的排列

知识大全 怎么学好英语单词和语法。

怎么学好英语单词和语法。学英语语法切记不可盲目!如果你把语文的语法学通了,要学英语语法那是轻而易举的。而你只是一心要学好英语语法,却不注重将之融会贯通,那你就会越学越觉得烦、难,进而对学习英语语法、英

知识大全 正则表达式语法及实例整理

  ***正则表达式语法(字符匹配语法重复匹配语法字符定位语法转义匹配语法)********  (字符  \\      将下一个字符标记为

知识大全 学了谢孟媛的语法还要学新概念英语的语法吗

学了谢孟媛的语法还要学新概念英语的语法吗我认为结合学比较好。谢孟媛文法要听细,学透。特别要学习她的做题方法哦,顶呱呱滴。新概念的就拿来多读吧,有助于提高口语。语法不是学得越多就越好,是要学得扎实、深刻

知识大全 我们现在学习的英语语法是外国人发明的,还是中国人总结

我们现在学习的英语语法是外国人发明的,还是中国人总结外国人也是人。中国人学语法,外国人怎么可能不学语法呢?中国人也不是所有人都学语法。外国人也不是所有人都学语法。语法是语言的规律,语言的规则。凡是语言

知识大全 XML的语法规则

XML入门基础:XML的语法规则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!提纲一XML语法规则

知识大全 语法填空急

语法填空急!61.memories;62.actually;63.which;64.after;65.havegained;66.toachieve;67.solution;68.betreated;

知识大全 PHP 5.3闭包语法初探

PHP5.3闭包语法初探  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP将加入闭包语法也就

知识大全 要学好英语是学语法重要还是培养语感重要?

要学好英语是学语法重要还是培养语感重要?都重要。语法是学好英语的基础,它是掌握英语的工具。在你掌握了一定的词汇量后,了解一些语法知识是非常必要的。建立初步的语感,获得初步运用英语的能力,为真实交际打下