我正在尝试让 XSL 呈现带有 & 标签的 XML 属性为 &

  • 本文关键字:标签 XML 属性 XSL xslt-1.0
  • 更新时间 :
  • 英文 :


我有一个XML标签,其中包含名称。H& m。要求是它应该输出为H& ampM。我还无法实现。

没有一个逃生字符,&或&& amp;为我工作。这是有效的方法:

<xsl:template name="string-replace-all">

    <xsl:param name="text" />
         <xsl:choose>
             <xsl:when test="contains($text, '&amp;')">
                 <xsl:value-of select="substring-before($text,'&amp;')"/>
                 <xsl:text disable-output-escaping="yes"><![CDATA[&amp;]]></xsl:text>
                 <xsl:value-of select="substring-after($text,'&amp;')"/>
             </xsl:when>
             <xsl:when test="contains($text, '&amp;apos;')"> 
              <xsl:value-of select="substring-before($text,'&amp;apos;')"/>
              <xsl:text disable-output-escaping="yes"><![CDATA[&apos;]]></xsl:text>
              <xsl:value-of select="substring-after($text,'&amp;apos;')"/> 
              </xsl:when>
             <xsl:otherwise>
                 <xsl:value-of select="$text" />
             </xsl:otherwise>
          </xsl:choose>
     </xsl:template>

然后调用模板:

<Nm>
                                  <xsl:variable name="suppNm">
                                   <xsl:call-template name="string-replace-all">
                                     <xsl:with-param name="text" select="Payee/Name" />
                                   </xsl:call-template>
                                      </xsl:variable>                           
                                      <xsl:value-of select="$suppNm" />  
                                </Nm>

如果有人知道更好的解决方案,那将非常有兴趣知道。我是XSL的总体初学者。

相关内容

  • 没有找到相关文章

最新更新