【问题标题】:replace first 2 character of a string using xsl使用 xsl 替换字符串的前 2 个字符
【发布时间】:2018-02-28 17:29:48
【问题描述】:

我有一个问题。我需要使用 xsl 命令修改 xml 元素的前 2 个值。

类似这样的:

<hello>00100</hello>    -->>  <hello>99100</hello>

我认为有一个名为 replace 的函数可以完成此操作,但我不知道如何使用它。

您知道是否可以使用 xsl 执行此操作? 如果你有一些关于它的阅读的链接,或者更好的样本? 提前致谢。

【问题讨论】:

  • "但我不知道如何使用它" -- 阅读文档,然后进行实验。那么,如果您仍然无法使其正常工作,请更新您的帖子,显示您尝试过的内容以及实际发生的情况。
  • 我正在使用 XSLT 1,0
  • 您能否也扩展所需的逻辑。无论前两个字符是什么,您都想用“99”替换前两个字符吗?或者只有前两个字符是“00”?例如,如果前两个字符是“01”,那应该保持“01”还是变成“91”?
  • 是的,我不需要知道这两个字符的内容。我可以直接替换它。

标签: xml string xslt replace character


【解决方案1】:

如果您不需要对前两个字符做出反应,您可以像这样使用substring() 函数

substring(text(),3)

选择第二个之后的所有字符(XSLT 从一开始计数)。所以你的 XSLT-1.0 代码可能是:

<xsl:template match="hello" >
    <xsl:value-of select="concat('99',substring(text(),3))" />
</xsl:template>   

这会将 &lt;hello&gt; 元素的 text() 内容的前两个字符替换为 99

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 2014-08-31
    • 2018-11-15
    • 1970-01-01
    • 2012-02-16
    相关资源
    最近更新 更多