0

我有一个模板,它显示text()然后循环遍历所有子项并应用模板。问题是它把text()背面吐到我已经处理过的页面上。

对于我的一生,我找不到for-each select跳过 text() 节点的正确语法。

示例 XSLT 模板

<xsl:template match="Task">
<li>
  <u>
    <xsl:value-of select="text()"/>
  </u>
  <ul>
    <xsl:for-each select=".">
      <xsl:apply-templates />
    </xsl:for-each>
  </ul>
</li>
</xsl:template>

示例 XML

<Task>
    This is my main task.
    <Task>
        This is a sub-task.
    </Task>
</Task>

示例不需要的输出

  • 这是我的主要任务。
    • 这是我的主要任务。
    • 这是一个子任务。
4

1 回答 1

2

我想你想换

  <ul>
    <xsl:for-each select=".">
      <xsl:apply-templates />
    </xsl:for-each>
  </ul>

  <xsl:if test="*">
    <ul>
      <xsl:apply-templates select="*"/>
    </ul>
  </xsl:if>
于 2013-11-03T18:37:30.960 回答