我有一个模板,它显示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>示例不期望的输出
发布于 2013-11-03 18:37:30
我想你想要取代
  <ul>
    <xsl:for-each select=".">
      <xsl:apply-templates />
    </xsl:for-each>
  </ul>使用
  <xsl:if test="*">
    <ul>
      <xsl:apply-templates select="*"/>
    </ul>
  </xsl:if>https://stackoverflow.com/questions/19756188
复制相似问题