我有一个显示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>
示例不受欢迎的输出
- 这是我的主要任务。
- 这是我的主要任务。
- 这是一项子任务。
答案 0 :(得分:2)
我想你要替换
<ul>
<xsl:for-each select=".">
<xsl:apply-templates />
</xsl:for-each>
</ul>
与
<xsl:if test="*">
<ul>
<xsl:apply-templates select="*"/>
</ul>
</xsl:if>