XPath函数——字符串函数

      字符串函数主要用来处理字符串。字符串函数主要包括以下:concat(),contains(),normalize-space(),substing(),substring-before(),subsring-after(),translate().

      1、concat()

      concat()函数用于串连多个字符串。

      简单示例:

      xml:

  1. 
    <root>
       <e id="1">ste>
       <e id="2">nde>
       <e id="3">rde>
    root>

      xslt:

  1. 
    <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="/root">
           <xsl:for-each select="e">
                <xsl:value-of select="concat(@id,.,'
    ')"/>       
           xsl:for-each>
        xsl:template>
    xsl:stylesheet>

      结果:

  1. 1st
    2nd
    3rd

  

      2、contains()

      contains(str1,str2)函数用来判断str2是否是第一个字符串的一部分。

      简单示例:

      xml:

  1. 
    <books>
       <book>XMLbook>
       <book>XSLTbook>
       <book>XPathbook>
       <book>C#book>
    books>

     xslt:

  1. 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/books">
           <books>
           <xsl:for-each select="book">
                <xsl:if test="contains(.,'X')">
                    <xsl:copy>
                        <xsl:value-of select="."/>                
                    xsl:copy>            
                xsl:if>     
           xsl:for-each>
           books>
        xsl:template>
    xsl:stylesheet>

     结果:

  1. <books>
  2.     <book>XMLbook>
        <book>XSLTbook>
        <book>XPathbook>
    books>

 

    3、normalize-space()

    normalize-space()用来将一个字符串的头部和尾部的空白字符删除,如果字符串中间含有多个连续的空白字符,将用一个空格来代替。

    简单示例:

    xml:

  1. 
    <article>
        <title>  When    The  Wind Blowstitle>
        <paragraph>
              When you have get ready for everything ,you  could  
                                            Sleep though the wind blows    
        paragraph>
        <paragraph>
              That means you should          do your best on your work and fear
                      nothing    
        paragraph>
    article>

    xslt:

  1. 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/books">
            <xsl:apply-templates select="article"/>
        xsl:template>
        <xsl:template match="article">
            <xsl:copy>
                <xsl:apply-templates select="*"/>
            xsl:copy>    
        xsl:template>
        <xsl:template match="*">
            <xsl:copy>
                <xsl:value-of select="normalize-space()"/>        
            xsl:copy>    
    xsl:template>
    xsl:stylesheet>

     结果:

  1. 
    <article>
        <title>When The Wind Blowstitle>
        <paragraph>When you have get ready for everything ,you could Sleep though the wind blowsparagraph>
        <paragraph>That means you should do your best on your work and fear nothingparagraph>
    article>

 

    4、starts-with()

    start-with(string,startr)函数用来判断string是否以startstr开头。

    简单示例:

    xml:

  1. 
    <books>
       <book>XMLbook>
       <book>XSLTbook>
       <book>XPathbook>
       <book>C#book>
    books>

    xslt:

显示行号 复制代码
  1. 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/books">
            <xsl:copy>
                <xsl:for-each select="book">
                    <xsl:if test="starts-with(.,'X')">
                        <xsl:copy-of select="."/>          
                    xsl:if>    
                xsl:for-each>
            xsl:copy>
        xsl:template>
    xsl:stylesheet>

     结果:

  1. <books>
  2.     <book>XMLbook>
        <book>XSLTbook>
        <book>XPathbook>
    books>

     

    5、string-length()

    string-length(string)函数用来返回参数string的长度,如果参数string为缺省,将返回上下文节点的字符串长度。

 

    6、substring()

    substring(string,number,length)函数用来截取字符串。参数string用于指定要截取的字符串;参数number用于指定开始位置;参数length用于指定截取字符串的长度。如果缺少length参数将从开始位置number一直到截取字符串的长度

    简单示例:

    xml:

  1. 
    <root>
       <text>123456789ABCDEFtext>
    root>

     xslt:

  1. 
    <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="/root">
            <xsl:value-of select="substring(text,1,5)"/>
            <xsl:text>
    xsl:text>
            <xsl:value-of select="substring(text,1)"/>
            <xsl:text>
    xsl:text>
            <xsl:value-of select="substring(text,1,string-length(text))"/>
        xsl:template>
    xsl:stylesheet>

    结果:

  1. 12345
    123456789ABCDEF
    123456789ABCDEF

 

    7、substring-before()

    substring-before(str1,str2)函数用于返回字符串str1中位于字符串str2之前的部分。

    简单示例:

    xml:

  1. 
    <datetime>
        <date>2010-01-17date>
        <time>22:49:30time>
    datetime>

     xslt:

  1. 
    <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="/datetime">
            <xsl:apply-templates select="*"/>
        xsl:template>
        <xsl:template match="date">
            <xsl:value-of select="concat(substring-before(.,'-'),'年')"/>    
        xsl:template>
        <xsl:template match="time">
            <xsl:value-of select="concat(substring-before(.,':'),'时')"/>    
        xsl:template>
    xsl:stylesheet>

     结果:

  1. 2010年22时

 

    8、substring-after()

    substring-after(str1,str2)函数跟substring-before类似,substring-after0返回字符串str1中位于字符串str2之后的部分。

    简单示例:

    xml:

  1. 
    <dir>
        <file>a.txtfile>
        <file>t.xmlfile>
        <file>t.xsltfile>
    dir>

     xslt:

  1. 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes"/>    
        <xsl:template match="/dir">
            <extends>
                <xsl:for-each select="file">
                    <extend>
                        <xsl:value-of select="substring-after(.,'.')"/>
                    extend>
                xsl:for-each>        
            extends>
        xsl:template>
    xsl:stylesheet>

   结果:

  1. 
    <extends>
        <extend>txtextend>
        <extend>xmlextend>
        <extend>xsltextend>
    extends>

 

    9、translate()

    translate(string,replaced_txt,replacement_txt)函数用来替换字符串,替换string中的所有replaced_txt为replacement_txt.

你可能感兴趣的:(xpath,函数)