XPath函数——节点集函数

       XPath节点集函数是用来处理节点集的函数。主要有count(),position(),last()和name()等。

      1、count()函数

      count函数用来计算某个节点集合中的节点数目。

      简单示例:

      xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <messages>
       <message id="1">This is a test message</message>
       <message id="2">This is a test message</message>
       <message id="3">This is a test message</message>
    </messages>

     xslt:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/">
            messages:<xsl:value-of select="count(messages)"/>
            message:<xsl:value-of select="count(messages/message)"/>
            messages|message:<xsl:value-of select="count(messages|messages/message)"/>
        </xsl:template>
    </xsl:stylesheet>

     结果:

  1.         messages:1
            message:3
            messages|message:4

   

      2、position()函数

      position()函数用来返回上下文节点在正在处理的节点集合中的位置。

      简单示例:

      xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <e>001</e>
       <e>002</e>
       <e>003</e>
    </root>

      xslt:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/">
            <xsl:for-each select="root/e">
    <xsl:value-of select="position()"/>个元素:<xsl:value-of select="."/>        
            </xsl:for-each>
        </xsl:template>
    </xsl:stylesheet>

      结果:

  1.             第1个元素:001
              第2个元素:002
              第3个元素:003

 

      3、last()

      last()函数返回正在处理的节点集合中,最后一个节点的位置。

     简单示例:

     xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <e>001</e>
       <e>002</e>
       <e>003</e>
    </root>

     xslt:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/">
            <xsl:for-each select="root/e">
                 <xsl:value-of select="."/>
                 <xsl:if test="position()!=last()">
                    <xsl:text>,</xsl:text>             
                 </xsl:if>        
            </xsl:for-each>
        </xsl:template>
    </xsl:stylesheet>

     结果:

  1. 001,002,003

   

      4、name()

      name()函数用来返回节点集合node-set中第一个节点的节点名称。

     简单示例:

     xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <a>001</a>
       <b>002</b>
       <c>003</c>
    </root>

     xslt:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/">
            <xsl:value-of select="name(root/*)"/>
        </xsl:template>
    </xsl:stylesheet>

      结果:

  1. a

转载于:https://www.cnblogs.com/zhaozhan/archive/2010/01/17/1650136.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值