XSL概述(二)

Xpath查询是XSLT的重中之重,唯一的查询方式。

许多的xslt结点都采用Xpath查询表达式,包括xsl:template,xsl:value-of,等等。

首先,来看一下基本的Xpath表达式。

2.xml是一个范例xml,2.xsl中包含了很多Xpath表达式,主要是通过父子关系及通配符来查询。

"." 当前结点:<xsl:value-of select="./@name"/><br/>
"." 可以省略:<xsl:value-of select="@name"/>
<hr/>
"./部门"表示该结点下所有tagname为部门的儿子结点<br/>
".//",这代表该结点的所有tagname为员工的子孙结点<br/>
<xsl:for-each select="./部门">
部门名称:<xsl:value-of select="@name"/>,部门员工数量:<xsl:value-of select="count(.//员工)"/><br/>
</xsl:for-each>
二级部门合计:<xsl:value-of select="count(./部门)"/>
各级部门合计:<xsl:value-of select="count(.//部门)"/>
<hr/>
"*" 表示通配所有结点<br/>
<xsl:for-each select=".//*">
名称:<xsl:value-of select="./@name"/>,<br/>
</xsl:for-each>
<br/>
"./*/员工" 表示当前结点下的tagname为员工的孙子结点<br/>
二级部门的直属员工<br/>
<xsl:for-each select="./*/员工">
昵称:<xsl:value-of select="current()/@name"/>,<br/>
</xsl:for-each>
"./*/员工" 表示当前结点下的tagname为员工的孙子结点<br/>
三级部门的直属员工<br/>
<xsl:for-each select="./*/*/员工">
昵称:<xsl:value-of select="./@name"/>,<br/>
</xsl:for-each>

第二,来归纳一下Xpath的基本运算符和逻辑运算符

/儿子结点或属性
//儿孙结点
.当前结点
*通配所有结点 例如 ./*表示当前结点的所有儿子结点
@属性的前缀 例如 ./@name 表示当前结点的name属性,而./name 表示当前结点的name结点,
@*属性通配符
:名称空间
( )分组 例如 (./child[1] and ./child[2]) or (./child[3] and ./child[4])
[ ]筛选表达式 例如 ./child[position()=1]
[ ]下标 例如./child[1]
+
-
div
*
mod
OperatorDescription
andLogical-and
orLogical-or
not()Negation
=Equality
!= Not equal
&lt; *Less than
&lt;= *Less than or equal
&gt; *Greater than
&lt;= *Greater than or equal
|Set operation; returns the union of two sets of nodes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值