【问题标题】:XSLT - Replacing new line with br tagXSLT - 用 br 标签替换新行
【发布时间】:2017-07-26 17:11:03
【问题描述】:

有没有办法在 XSLT 1.0 中用 br 标记替换新行? 尝试了

&#x0A,但仍然无法匹配新行。

这是我的代码:

<xsl:template name="HEADLINE">
  <xsl:if test="$gHeadline">
    <xsl:element name="lnv:HEADLINE">
      <xsl:element name="lnvxe:hl1">
        <xsl:variable name="vString">
          <xsl:choose>
            <xsl:when test="contains($gHeadlineCaps,'ENTERT@INMENT.COM')">
              <xsl:variable name="vLeftString" select="substring-before($gHeadline,'@')"/>
              <xsl:variable name="vRightString" select="substring-after($gHeadline,'@')"/>
            <xsl:value-of select="concat($vLeftString,' @',$vRightString)"/> 
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="$gHeadline" />
            </xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:value-of select="translate($vString,'&#x0A;','&lt;br/&gt;')"/> 
      </xsl:element>
    </xsl:element>
  </xsl:if>
</xsl:template>

这是输入:

 AGONY
 Train derails, dozens hurt in smoky chaos
 Mayor, gov no-shows after latest MTA fail
 EXCLUSIVE Motorman tells News his story

 DON'T CARE
 PREZ 'OK' AS HEALTH BILL FLOPS

 MET LOSS
 PITCHER DEAD AT 51

这是所需的输出:

 AGONY<br/>
 Train derails, dozens hurt in smoky chaos<br/>
 Mayor, gov no-shows after latest MTA fail<br/>
 EXCLUSIVE Motorman tells News his story<br/>
 <br/>
 DON'T CARE<br/>
 PREZ 'OK' AS HEALTH BILL FLOPS<br/>
 <br/>
 MET LOSS<br/>
 PITCHER DEAD AT 51<br/>

谢谢!

【问题讨论】:

标签: xslt


【解决方案1】:

如果您使用 EXSLT 中的库,您可以将其编写为

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:str="http://exslt.org/strings"
    exclude-result-prefixes="str"
    version="1.0">

    <xsl:import href="http://exslt.org/str/functions/replace/str.replace.template.xsl"/>

    <xsl:template match="text">
        <xsl:copy>
            <xsl:call-template name="str:replace">
                <xsl:with-param name="string" select="."/>
                <xsl:with-param name="search" select="'&#10;'"/>
                <xsl:with-param name="replace"><br/></xsl:with-param>
            </xsl:call-template>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>

这改变了

<text> AGONY
    Train derails, dozens hurt in smoky chaos
    Mayor, gov no-shows after latest MTA fail
    EXCLUSIVE Motorman tells News his story

    DON'T CARE
    PREZ 'OK' AS HEALTH BILL FLOPS

    MET LOSS
    PITCHER DEAD AT 51</text>

进入

<text> AGONY<br/>    Train derails, dozens hurt in smoky chaos<br/>    Mayor, gov no-shows after latest MTA fail<br/>    EXCLUSIVE Motorman tells News his story<br/>    <br/>    DON'T CARE<br/>    PREZ 'OK' AS HEALTH BILL FLOPS<br/>    <br/>    MET LOSS<br/>    PITCHER DEAD AT 51</text>

【讨论】:

  • 不导入模板有什么办法吗?
  • 嗯,是的,将引用文件中的代码复制到您的样式表中,或者编写您自己的模板,类似于引用代码中的模板。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2015-08-15
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多