0
4

2 回答 2

1

基本上,您需要确保在模板中保持对子节点的处理,因此您需要<xsl:apply-templates/>(或者<xsl:apply-templates select="@* | node()"/>,如果您还想转换或复制属性)在所有模板中匹配可以包含这些元素的italic元素。因此,您当然可以编写一个模板匹配root/ISSUES,但您需要确保它通过做<xsl:apply-templates/>.

于 2013-09-13T12:39:50.573 回答
0

添加

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

只要。属性和节点的处理将由您的其余代码处理。该示例展示了如何在没有任何您自己的逻辑的情况下进行复制。您的解决方案将如下所示:

<xsl:template match="/">
<xsl:message>Inside root</xsl:message>
    <xsl:apply-templates select="/root/ISSUES" />
</xsl:template>
    <xsl:template match="/root/ISSUES">
            some logic follows here( it might even internally call many templates)
    </xsl:template>
<xsl:template match="italic">
    <I>
        <xsl:apply-templates select="@* | node()"/>
    </I>
</xsl:template>
于 2013-09-13T12:54:42.327 回答