本文是转载的,原文网址:http://www.cnblogs.com/zhaozhan/archive/2010/01/17/1650242.html

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

1、concat()

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

简单示例:

xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <e id="1">st</e>
    <e id="2">nd</e>
    <e id="3">rd</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="/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. <?xml version="1.0" encoding="UTF-8"?>
    <books>
    <book>XML</book>
    <book>XSLT</book>
    <book>XPath</book>
    <book>C#</book>
    </books>

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="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. <?xml version="1.0" encoding="gb2312"?>
  2. <books>
  3.     <book>XML</book>
    <book>XSLT</book>
    <book>XPath</book>
    </books>

3、normalize-space()

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

简单示例:

xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <article>
    <title> When The Wind Blows</title>
    <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. <?xml version="1.0" encoding="UTF-8"?>
    <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. <?xml version="1.0" encoding="gb2312"?>
    <article>
    <title>When The Wind Blows</title>
    <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>

4、starts-with()

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

简单示例:

xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <books>
    <book>XML</book>
    <book>XSLT</book>
    <book>XPath</book>
    <book>C#</book>
    </books>

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="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. <?xml version="1.0" encoding="gb2312"?>
  2. <books>
  3.     <book>XML</book>
    <book>XSLT</book>
    <book>XPath</book>
    </books>

5、string-length()

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

6、substring()

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

简单示例:

xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <text>123456789ABCDEF</text>
    </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="/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. <?xml version="1.0" encoding="UTF-8"?>
    <datetime>
    <date>2010-01-17</date>
    <time>22:49:30</time>
    </datetime>

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="/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. <?xml version="1.0" encoding="UTF-8"?>
    <dir>
    <file>a.txt</file>
    <file>t.xml</file>
    <file>t.xslt</file>
    </dir>

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="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. <?xml version="1.0" encoding="gb2312"?>
    <extends>
    <extend>txt</extend>
    <extend>xml</extend>
    <extend>xslt</extend>
    </extends>

9、translate()

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

XPath函数——字符串函数(转载)的更多相关文章

  1. ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数

    原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...

  2. javascript函数一共可分为五类: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数

    javascript函数一共可分为五类:    ·常规函数    ·数组函数    ·日期函数    ·数学函数    ·字符串函数    1.常规函数    javascript常规函数包括以下9个 ...

  3. Sass函数--字符串函数

    Sass的函数简介在 Sass 中除了可以定义变量,具有 @extend.%placeholder 和 mixins 等特性之外,还自备了一系列的函数功能.其主要包括: ● 字符串函数 ● 数字函数 ...

  4. mssql 系统函数-字符串函数专题--字符串函数大全

    mssql 系统函数 字符串函数 substring 功能简介 mssql 系统函数 字符串函数 stuff 功能简介 mssql 系统函数 字符串函数 str 功能简介 mssql 系统函数 字符串 ...

  5. php常用函数——字符串函数

    php常用函数——字符串函数

  6. 2016/3/17 Mysq select 数学函数 字符串函数 时间函数 系统信息函数 加密函数

    一,数学函数主要用于处理数字,包括整型.浮点数等. ABS(X) 返回x的绝对值 SELECT ABS(-1)--返回1 CEll(X),CEILING(x)  返回大于或等于x的最小整数 SELEC ...

  7. Linux下常用函数-字符串函数

    inux下常用函数-字符串函数 atof(将字符串转换成浮点型数)  相关函数   atoi,atol,strtod,strtol,strtoul 表头文件   #include <stdlib ...

  8. sql server 系统常用函数:聚合函数 数学函数 字符串函数 日期和时间函数和自定义函数

    一.系统函数 1.聚合函数 聚合函数常用于GROUP BY子句,在SQL Server 2008提供的所有聚合函数中,除了COUNT函数以外,聚合函数都会忽略空值AVG.COUNT.COUNT_BIG ...

  9. sqlserver 中常见的函数字符串函数

    ---字符中操作函数 UPPER(S) 将字符串统一为大写字母 SELECT UPPER('asasA') --ASASA LOWER(S) 将字符串统一为小写字母 SELECT LOWER('asa ...

随机推荐

  1. ORACLE 解锁、找回表和找回程序语句

    最近在工作中同事们经常遇到锁表.误删表和程序覆盖的情况,现总结下遇到这三种情况的解决方案: 1.暴力删除锁表 当表被某些语句占用无法停止,或者出现事物阻塞的情况下,需要手动删除锁(万不得已的情况下用) ...

  2. iOS视图弹出、平移、旋转、翻转、剪切等变换效果实现

    效果图: 1.定义属性 @property (nonatomic, strong) UIView *transformView;//发生变换的试图 @property (nonatomic, stro ...

  3. CentOS 6.3下Samba服务器的安装与配置

    一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...

  4. 今天主要推荐一下django学习的网址!

    前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...

  5. [转]NET Core中实现一个Token base的身份认证

    本文转自:http://www.cnblogs.com/Leo_wl/p/6077203.html 注:本文提到的代码示例下载地址> How to achieve a bearer token ...

  6. <<一种基于δ函数的图象边缘检测算法>>一文算法的实现。

    原始论文下载: 一种基于δ函数的图象边缘检测算法. 这篇论文读起来感觉不像现在的很多论文,废话一大堆,而是直入主题,反倒使人觉得文章的前后跳跃有点大,不过算法的原理已经讲的清晰了.     一.原理 ...

  7. Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  8. Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一)

    基于 Windows 10 的 Visual Studio 2015 跨平台的应用开发主要分为基于Visual Studio 安装 Xamarin 扩展的跨Android.iOS 和 Windows的 ...

  9. NOIP2008双栈排序[二分图染色|栈|DP]

    题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈S1 ...

  10. 为WebService指定线程池

    通过阅读WebService发布过程的源代码,可以配置自定义的线程池 package org.zln.ws.server;import com.sun.xml.internal.ws.api.Bind ...