使用转换功能在XSLT中删除单词“和”

森希尔·阿拉苏(Senthil Arasu)

我想使用翻译功能而不是使用替换从字符串中删除单词“”。

例如:

 <xsl:variable name="nme" select="translate(./Name/text(), ',:, '')" />

除了“,:”外,我还要删除单词“”。请提出建议。

伊恩·罗伯茨

translate函数无法执行此操作,它只能删除或替换单个字符,而不能删除或替换多字符字符串。就像XSLT 1.0中的许多东西一样,转义路径是一个递归模板,最简单的版本是:

<xsl:template name="removeWord">
  <xsl:param name="word" />
  <xsl:param name="text" />

  <xsl:choose>
    <xsl:when test="contains($text, $word)">
      <xsl:value-of select="substring-before($text, $word)" />
      <xsl:call-template name="removeWord">
        <xsl:with-param name="word" select="$word" />
        <xsl:with-param name="text" select="substring-after($text, $word)" />
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$text" />
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

然后在定义nme变量时调用此模板

<xsl:variable name="nme">
  <xsl:call-template name="removeWord">
    <xsl:with-param name="word" select="'and'" /><!-- note quotes-in-quotes -->
    <xsl:with-param name="text" select="translate(Name, ',:', '')" />
  </xsl:call-template>
</xsl:variable>

在这里,我translate用来删除单个字符,然后将结果传递给模板以删除“和”。

尽管正如注释中所指出的那样,这完全取决于您所说的“单词”的意思-这将删除所有出现的字符串“ and”,包括其他单词的中间部分,您可能希望更加保守一些,只删除“和” ”(例如,空格和)。

要删除多个单词,您只需重复调用模板,然后将一个调用的结果作为参数传递给下一个

<xsl:variable name="noEdition">
  <xsl:call-template name="removeWord">
    <xsl:with-param name="word" select="'Edition'" />
    <xsl:with-param name="text" select="translate(Name, ',:', '')" />
  </xsl:call-template>
</xsl:variable>

<xsl:variable name="nme">
  <xsl:call-template name="removeWord">
    <xsl:with-param name="word" select="' and'" />
    <xsl:with-param name="text" select="$noEdition" />
  </xsl:call-template>
</xsl:variable>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何使用Apply功能在大数据框中删除单词

来自分类Dev

我使用查找功能在vba Excel中查找单词

来自分类Dev

无法使用“获取和转换”功能在Excel 2016中导入JSON

来自分类Dev

如何使用传播功能在React中删除嵌套对象

来自分类Dev

如何使用云功能在Firestore中删除文档

来自分类Dev

使用jQuery onclick功能在按钮上添加和删除活动的类

来自分类Dev

使用XSLT 1.0的XML到XML的转换-修改文本中的多个单词

来自分类Dev

我应该在Excel中使用什么功能在多个单元格中搜索重复出现的单词?

来自分类Dev

如何使用R删除字符串中特定单词之前和之后的单词?

来自分类Dev

使用多个功能在Haskell中折叠

来自分类Dev

在Server 2012中删除未使用的Windows角色和功能

来自分类Dev

使用1 Form和许多功能在c#中组织代码

来自分类Dev

Firebase通知和Firebase数据库功能在我的应用中无法同时使用

来自分类Dev

使用1 Form和许多功能在C#中组织代码

来自分类Dev

为什么我不能在Notepad ++中的搜索和替换功能中使用字符“(”或“)”?

来自分类Dev

删除功能在 angular JS 中不起作用

来自分类Dev

SQL 删除功能在表中不起作用

来自分类Dev

使用XSLT将日期时间转换为完整单词

来自分类Dev

使用XSLT允许和删除元素

来自分类Dev

'darken()'和'rgba()',这些功能在CSS中吗?

来自分类Dev

使用gsub和mapply从另一个长度不同的单词向量中删除单词的向量

来自分类Dev

使用Regex Python删除数据框中字符串的前2个单词和后2个单词

来自分类Dev

XSLT-如何删除某些单词并使用“ OR”将其余单词加入

来自分类Dev

使用终端从文件中删除多个单词

来自分类Dev

使用列表理解从列表中删除单词

来自分类Dev

使用python删除文件中的多余单词

来自分类Dev

如何使用NLTK和Python从文本中删除自定义单词模式

来自分类Dev

如何使用RegExp从文本中删除除ä,ö和ü以外的所有非单词字符

来自分类Dev

如何使用Shell脚本从文件中删除<Technology>和</ Technology>单词?

Related 相关文章

  1. 1

    我如何使用Apply功能在大数据框中删除单词

  2. 2

    我使用查找功能在vba Excel中查找单词

  3. 3

    无法使用“获取和转换”功能在Excel 2016中导入JSON

  4. 4

    如何使用传播功能在React中删除嵌套对象

  5. 5

    如何使用云功能在Firestore中删除文档

  6. 6

    使用jQuery onclick功能在按钮上添加和删除活动的类

  7. 7

    使用XSLT 1.0的XML到XML的转换-修改文本中的多个单词

  8. 8

    我应该在Excel中使用什么功能在多个单元格中搜索重复出现的单词?

  9. 9

    如何使用R删除字符串中特定单词之前和之后的单词?

  10. 10

    使用多个功能在Haskell中折叠

  11. 11

    在Server 2012中删除未使用的Windows角色和功能

  12. 12

    使用1 Form和许多功能在c#中组织代码

  13. 13

    Firebase通知和Firebase数据库功能在我的应用中无法同时使用

  14. 14

    使用1 Form和许多功能在C#中组织代码

  15. 15

    为什么我不能在Notepad ++中的搜索和替换功能中使用字符“(”或“)”?

  16. 16

    删除功能在 angular JS 中不起作用

  17. 17

    SQL 删除功能在表中不起作用

  18. 18

    使用XSLT将日期时间转换为完整单词

  19. 19

    使用XSLT允许和删除元素

  20. 20

    'darken()'和'rgba()',这些功能在CSS中吗?

  21. 21

    使用gsub和mapply从另一个长度不同的单词向量中删除单词的向量

  22. 22

    使用Regex Python删除数据框中字符串的前2个单词和后2个单词

  23. 23

    XSLT-如何删除某些单词并使用“ OR”将其余单词加入

  24. 24

    使用终端从文件中删除多个单词

  25. 25

    使用列表理解从列表中删除单词

  26. 26

    使用python删除文件中的多余单词

  27. 27

    如何使用NLTK和Python从文本中删除自定义单词模式

  28. 28

    如何使用RegExp从文本中删除除ä,ö和ü以外的所有非单词字符

  29. 29

    如何使用Shell脚本从文件中删除<Technology>和</ Technology>单词?

热门标签

归档