使用 xslt 将 h3 带到 p 之外



输入是 -

    <data>
      <container>
        <strong>Code Development</strong>
        <br/>
        here to support
        <ul class="nested">
          <li>list 1</li>
          <li>list 2</li>
          <li>list 3</li>
          <li>list 4</li>
        </ul>
something here
<strong>this is strong</strong>
      </container>
    </data>

预期输出 -

            <h3>Code Development</h3>
        <p>
        here to support
        <ul class="nested">
          <li>list 1</li>
          <li>list 2</li>
          <li>list 3</li>
          <li>list 4</li>
        </ul>
      </p>
<h3>this is strong</h3>
<p>    something here</p>

强标签应该变成 H3,并且由于 H3 不能在 <p> 内部,因此将其移动到 p 之外,作为第一个出现在 p 之前。

试试这个:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="strong">
        <h3><xsl:value-of select="."/></h3>
    </xsl:template>
    <xsl:template match="container/text()">
        <xsl:if test="string-length(normalize-space()) > 0">
            <p><xsl:value-of select="."/></p>
        </xsl:if>
    </xsl:template>
    <xsl:template match="ul">
        <xsl:copy-of select="."/>
    </xsl:template>
</xsl:stylesheet>

下面是一个实际示例:http://www.utilities-online.info/xsltransformation/?save=5c53ab7f-0a1e-4fba-a608-4bb2d6ec1de0-xsltransformation#.VqDQ1SArK90

相关内容

  • 没有找到相关文章

最新更新