2015-08-31 132 views
0

這可能是一個簡單的xslt問題。我喜歡XML如下XSLT - 刪除多個節點並添加新節點

<doc> 
    <chap> 
     <p>This is a para</p> 
    </chap> 
</doc> 

我需要的是刪除這兩個<doc><chap>節點並添加節點到結果三人。

所以輸出應該是,

<new> 
    <p>This is a para</p> 
</new> 
當我寫模板

<xsl:template match="doc"> 
     <new><xsl:apply templates/></new> 
    </template> 

它增加了<chap>導致樹

當我寫模板<chap>

<xsl:template match="chap"> 
     <new><xsl:apply templates/></new> 
    </template> 

它增加了<doc>導致樹。

我無法壓制像<xsl:template match="chap"/>這樣的元素。因爲它也會刪除子節點。

如何使用xsl獲得所需的輸出?

+0

顯然,您的樣式表中有其他模板,您不會向我們顯示。 –

回答

1

使用<xsl:template match="doc"><xsl:apply-templates/><xsl:template>,那麼你可以使用你的

<xsl:template match="chap"> 
     <new><xsl:apply templates/></new> 
</template> 

與你可能有太多(雖然你還沒有表現出它)的身份轉換模板一起。