【问题标题】:XSL replace special character by a StringXSL 用字符串替换特殊字符
【发布时间】:2020-04-04 03:29:02
【问题描述】:

我是 XSL 新手,我需要将以下 XML 节点解析为常规文本:

<GeneralRemark Source="A3" SourceRef="LD8PN5">
    <ElementNumber Source="A3" SourceElement="14">9</ElementNumber>
    <Text>SPECIAL CHARACTER € EURO SIGN</Text>
</GeneralRemark>

我需要读取文本节点中的数据,并在输出中将 € 替换为 EUR。我的应用不支持€,所以我不能使用它。

这就是我现在阅读 GeneralRemark 节点的方式:

<xsl:if test="../PNRViewRS/GeneralRemark/Text">
    <xsl:for-each select="../PNRViewRS/GeneralRemark/Text">
        <xsl:text>RM </xsl:text>
        <xsl:value-of select="."/>                  
        <xsl:value-of select="$cr"/>                        
    </xsl:for-each>
</xsl:if>

我们将不胜感激有关如何解决此问题的任何提示。

【问题讨论】:

  • 您的处理器支持哪个版本的 XSLT?
  • 现在是 1.0 版
  • 另外预期的输出是:特殊字符欧元符号

标签: xml xslt


【解决方案1】:

如果文本总是包含您要替换的模式的一个匹配项,您可以使用:

<xsl:value-of select="substring-before(., '€')"/> 
<xsl:text>EUR</xsl:text>                 
<xsl:value-of select="substring-after(., '€')"/> 

否则,您将需要调用命名递归模板来替换所有可能出现的模式。在此处查看示例:https://stackoverflow.com/a/30339654/3016153

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 2015-03-17
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多