XSLT:在节点值中保留html标记并应用模板


<sectiondiv>
    <p>
        <ph linebreak="true">
            Lorem<br/>&#160;&#160;Ipsum<br/>&#160;&#160;&#160;&#160;<br/><br/><br/><br/><br/><br/><br/>
        </ph>
    </p>
    <p>
        <ph image-relation="test" linebreak="true“>
            Lorem<br/><br/>Ipsum:<br/><br/>testsentence<br/><myref kind="Variable" type="PlainText">1 684 463 394</myref ><br/><br/>
        </ph>
    </p>
</sectiondiv>

我想转换这个XML并在几个节点中保留HTML标记。此外,我想在值上应用额外的模板,例如myref标签有自己的模板。

有什么建议吗?

元素的"保存"可以通过单位变换来实现

<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>  
</xsl:template>

如果您想为一些标签执行额外的转换,那么将这些模板放在标识转换模板之前,如下所示:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="myref">
    <strong>myref encountered!</strong>
  </xsl:template>
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>  
  </xsl:template>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新