首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

XSLT 1.0 (xsltproc) -如何替换最后出现的字符?

XSLT 1.0是一种用于对XML文档进行转换和处理的编程语言。它使用XSLT样式表来定义如何将一个XML文档转换为另一个XML文档、HTML文档或纯文本。

要替换最后出现的字符,可以使用XSLT 1.0中的字符串处理函数和模板匹配来实现。以下是一个示例XSLT样式表,演示如何替换最后出现的字符:

代码语言:txt
复制
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" />

  <xsl:template match="/">
    <xsl:call-template name="replace-last">
      <xsl:with-param name="input" select="'Hello World!'" />
      <xsl:with-param name="search" select="'o'" />
      <xsl:with-param name="replace" select="'X'" />
    </xsl:call-template>
  </xsl:template>

  <xsl:template name="replace-last">
    <xsl:param name="input" />
    <xsl:param name="search" />
    <xsl:param name="replace" />

    <xsl:variable name="lastIndex" select="string-length($input) - string-length(substring-after($input, $search)) + 1" />
    <xsl:variable name="before" select="substring($input, 1, $lastIndex - 1)" />
    <xsl:variable name="after" select="substring($input, $lastIndex + string-length($search))" />

    <xsl:choose>
      <xsl:when test="contains($input, $search)">
        <xsl:value-of select="$before" />
        <xsl:value-of select="$replace" />
        <xsl:call-template name="replace-last">
          <xsl:with-param name="input" select="$after" />
          <xsl:with-param name="search" select="$search" />
          <xsl:with-param name="replace" select="$replace" />
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$input" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>

在上面的示例中,我们定义了一个名为replace-last的模板,它接受三个参数:input(输入字符串)、search(要替换的字符)和replace(替换后的字符)。模板使用substringstring-lengthcontains等字符串处理函数来定位最后出现的字符,并将其替换为指定的字符。

要在XSLT 1.0中使用该样式表,可以使用xsltproc命令行工具(在Linux和Mac上可用):

代码语言:txt
复制
xsltproc style.xsl input.xml

其中,style.xsl是上述样式表的文件名,input.xml是要进行替换的XML文件。

请注意,XSLT 1.0是一种较旧的标准,可能不支持某些高级功能。如果需要更强大的字符串处理功能,建议考虑使用XSLT 2.0或更高版本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php如何替换字符串中指定字符

str_replace() 函数使用一个字符替换字符串中另一些字符。 str_replace(find,replace,string,count)参数 描述 find 必需。...规定要查找值。 replace 必需。规定替换 find 中值。 string 必需。规定被搜索字符串。 count 可选。一个变量,对替换数进行计数。...raykaeso love php”); preg_replace ( pattern , replacement , subject,limit = -1 ,$count ) 作用:执行一个正则表达式搜索和替换...需要搜索模式。 replacement 必需。用于替换字符串或数组。 subject 必需。需要替换字符串或数组。 limit 替换次数。...-1为无限 count 完成替换次数,变量 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142242.html原文链接:https://javaforall.cn

4.8K10

libexslt库将XML转换为JSON

最近在一个 C 程序中碰到需要将 XML 数据转换为 JSON 数据问题,多番查找几种方法,觉得此程序刚好用到了 Linux 下 libexslt XSLT 库,因此想直接通过 XSLT 将 XML...网上已经有了现成 XML 转 JSON XSLT 程序: http://code.google.com/p/xml2json-xslt/ 下载下来 xml2json.xslt 程序可以很方便将标准...这个是我修改过 xml2json.xslt 文件: https://gist.github.com/zohead/9688858 Linux 系统可以方便使用 xsltproc 命令将 XML 转换为...JSON,运行下面的命令就会直接将转换出来 JSON 数据打印到标准输出中: xsltproc xml2json.xslt test.xml 下面主要介绍如何在 Linux 中编程使用 libexslt...文件名,支持 XML 字符串、XML 文件以及输出到文件及保存到字符方式。

4.2K20
  • php替换中文字符串,php如何替换字符串里字符「建议收藏」

    php替换字符串里字符方法:1、通过substr_replace函数把字符一部分替换为另一个字符串;2、使用str_replace函数将一个字符替换字符串中另一些字符。...相关函数如下:substr_replace():把字符一部分替换为另一个字符串 str_replace():使用一个字符替换字符串中另一些字符 substr_replace() substr_replace...() 函数用于把字符一部分替换为另一个字符串,返回混合类型。...str_replace() str_replace() 函数使用一个字符替换字符串中另一些字符,返回混合类型。...)字符串 replace要替换 search 字符串 string要处理字符串 count可选,一个对替换计数变量 例子:<?

    7.6K30

    如何使用 sed 替换文件中字符串?

    sed 是流编辑器(stream editor)缩写,它可以对文本进行逐行处理,包括查找和替换特定字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符替换操作。...基本语法sed 命令基本语法如下:sed 's/原始字符串/替换字符串/g' 文件名其中,s/原始字符串/替换字符串/g 是一个替换模式,用于指定要替换字符串。...原始字符串 是您希望替换文本,替换字符串 是您要替换新文本。g 是一个选项,表示全局替换,即替换每一行中所有匹配项。文件名 是要进行替换操作文件名。...如果您想直接在原始文件中进行替换,并将结果保存到原始文件中,可以使用 -i 选项:sed -i 's/原始字符串/替换字符串/g' 文件名替换文件中字符串现在,让我们来看一些使用 sed 替换文件中字符示例...通过学习并掌握 sed 命令基本语法和示例,您可以更加灵活地处理文本文件中字符替换任务。希望本文对您理解如何使用 sed 替换文件中字符串有所帮助!

    5.3K30

    如何用Java实现字符串匹配和替换高效算法?

    Java中有多种方法可以实现字符串匹配和替换高效算法。下面将介绍一些常见算法和实现方式,并提供一些示例代码。 1、字符串匹配算法: 1.1....Brute Force(暴力法): 这是最简单字符串匹配算法,也是最低效。它思想是逐个比较目标字符串中字符与要匹配字符字符是否相等。...Boyer-Moore算法: Boyer-Moore算法通过预处理模式串,跳过尽可能多字符,从而实现快速字符串匹配。时间复杂度为O(mn)。...中提供了String类replace()方法用于进行简单字符替换。...无论是字符串匹配还是替换,选择合适算法和方法取决于具体需求。在实际应用中,可以根据字符长度和匹配/替换频率来评估不同算法性能,从而选择最合适算法。

    23910

    replaceAll()如何同时替换多个不同字符串(或多个符号)

    前戏 今天同事小姐姐找我求助这么一个问题; Java中replaceAll()方法怎么才能同时替换多个不同字符串呢?.../* 源码: * @param regex : 此字符串可以匹配正则表达式,也可以是一般字符 * @param replacement : 要替换字符串 */ public String...String replacement) { return Pattern.compile(regex).matcher(this).replaceAll(replacement); } 很显然,这个替换字符是支持正则...:省|市|区)", ""); System.out.println("替换多个中文:" + str1); // 同时替换多个字符 String str2...,""); System.out.println("替换多个字符:" + str2); } } 打印内容: 替换多个中文:广东,福建,北京,海淀,河北,上海 替换多个字符:00000332323

    5.6K30

    如何字符串中字符替换为给定字符串?php strtr()函数怎么用?

    如何字符串中字符替换为给定字符串? strtr()函数是PHP中内置函数,用于将字符串中字符替换为给定字符串。...该函数返回已转换字符串;如果from和to参数长度不同,则会被格式化为最短长度;如果array参数包含一个空字符键名,则返回FALSE。 php strtr()函数怎么用?...规定要转换字符串。 ● from:必需(除非使用数组)。规定要改变字符(或子字符串)。 ● to:必需(除非使用数组)。规定要改变为字符(或字符串)。...一个数组,其中键名是原始字符,键值是目标字符。 返回值 返回已转换字符串。...如果 from 和 to 参数长度不同,则会被格式化为最短长度;如果 array 参数包含一个空字符串("")键名,则返回 FALSE。

    5.2K70

    python 如何改变字符串中某一个值_python替换字符串中某个字符

    替换字符串  中某个字符等,下面介绍下这几个功能使用。  ...1、正则表达式替换  目标: 将字符串line中 overview.gif 替换成其他字符串  2、遍历目录方法  在某些时候,我们需要遍历某个目录找出特定文件列表,可以通过os.walk方法来遍历...文章  余二五  2017-11-22  891浏览量  python字符串操作实方法大合集  python字符串操作实方法大合集,包括了几乎所有常用python字符串操作,如字符替换、删除、截取...文章  茶花盛开  2017-07-27  8939浏览量  字符串操作二  s.find()函数  可在指定字符串范围内查找子字符出现位置  S.find(substr, [start, [end...]])  #返回S中出现substr第一个字母标号,如果S中没有substr则返回-1。

    5.7K00

    问与答117:如何求出字符串中出现所有数字之和?

    Q:如何使用公式返回文本字符串中所有数字之和?例如,对于文本字符串“I am 24years old and my Dad is 43”,应用公式后,结果为13,即2+4+4+3。...1到9,因此求和算法是: 1 ×字符串中1个数 + 2 × 字符串中2个数 + … … 9 ×字符串中9个数 = 结果 考虑使用SUBSTITUTE函数用空字符替换所有出现数字,例如4,SUBSTITUTE...考虑公式中 SUBSTITUTE(A1, {1,2,3,4,5,6,7,8,9}, “”) 使用空字符替换数字1至9,生成9个修改字符串值数组,剔除了所有出现相应数字。...由于在字符串中数字4出现了2次,结果字符串比原字符长度少2,因此LEN(A1)-LEN(SUBSTITUTE(A1,4, “”)得到2。...更进一步,公式中: LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9},"")) 得到含有9个值数组,代表每个数字在字符串中出现次数。

    72820

    执行XSLT转换

    XSLT(Extensible StyleSheet Language Transformations,可扩展样式表语言转换)是一种基于XML语言,用于描述如何将给定XML文档转换为另一个XML或其他...可以使用%XML.XSLT和%XML.XSLT2包中类来执行XSLT 1.0和2.0转换。注意:使用任何XML文档XML声明都应该指明该文档字符编码,并且文档应该按照声明方式进行编码。...如果未声明字符编码, IRIS将使用本书前面的“输入和输出字符编码”中描述默认值。如果这些默认值不正确,请修改XML声明,使其指定实际使用字符集。...在IRIS中执行XSLT转换概述IRIS提供两个XSLT处理器,每个处理器都有自己API: Xalan处理器支持XSLT 1.0。XML.XSLT包为该处理器提供API。...要创建编译样式表,请执行以下操作:如果使用是Xalan处理器(对于XSLT 1.0),请使用%XML.XSLT.CompiledStyleSheet以下类方法之一: CreateFromFile(

    3.4K20

    Web安全 | 带你了解一下XML及其注入相关知识

    首先我们来看一下XML与XSLT之间转换 先来看看下面这个XML文件(cdcatalog.xml): <?xmlversion="<em>1.0</em>"encoding="utf-8" ?...寻找切入点 假设应用程序可以生成下列XSLT文档(cdcatalog.xslt),而字符串 HELLO I FIND YOU 来自于不受信任用户输入。 <?...为了确认应用程序是否存在这个漏洞,我们可以向其注入一些类似双引号、单引号以及破折号等特殊字符,因为这类字符可以让XML文档中语句失效。如果服务器返回了错误,那么这个应用就很有可能存在漏洞。...system-property()函数 我们可以使用system-property()函数来查看代码库开发者名称,该功能符合XSLT v1.0标准,所有的代码库都实现了这种功能。...我们用上面讲到cdcatalog.xslt文件演示一下: <?xmlversion="<em>1.0</em>"encoding="utf-8"?

    3.8K30

    添加和使用XSLT扩展函数

    自定义错误处理当出现错误时,XSLT处理器(Xalan或Saxon)执行当前错误处理程序error()方法,将消息作为参数发送到该方法。...这些方法中每一个都接受单个参数,即包含由XSLT处理器发送消息字符串。这些方法不返回值。要在编译样式表时使用此错误处理程序,请创建子类实例,并在编译样式表时在参数列表中使用它。...举个例子),后一个函数反转它接收到字符。...返回值可以是:标量变量(如字符串或数字)。流对象。这允许返回超过字符串长度限制超长字符串。流必须包装在新窗口中%XML.XSLT.StreamAdapter实例中,使XSLT处理器能够读取流。...下面的示例显示使用evaluate样式表:<?xml version="<em>1.0</em>"?

    4.3K20

    替换最长重复字符如何用代码实现?

    福哥答案2021-02-02: 双指针 我们可以枚举字符串中每一个位置作为右端点,然后找到其最远左端点位置,满足该区间内除了出现次数最多那一类字符之外,剩余字符(即非最长重复字符)数量不超过...当我们右指针移动到尽头,左右指针对应区间长度必然对应一个长度最大符合条件区间。 实际代码中,由于字符串中仅包含大写字母,我们可以使用一个长度为 2626 数组维护每一个字符出现次数。...每次区间右移,我们更新右移位置字符出现次数,然后尝试用它更新重复字符出现次数历史最大值,最后我们使用该最大值计算出区间内非最长重复字符数量,以此判断左指针是否需要右移即可。...3.最大字符数,是各个历史窗口最大字符数。...替换最长重复字符 评论

    42310
    领券