2011-09-06 16 views
1

標籤我有下面的XML文件XSLT去除不工作的一個XML文件

<?xml version="1.0" encoding="utf-8"?> 
<article> 
<Details> 
<date>Posted: 08/22/2011 </date> 
<title>Hi this is Jake. I am Smart</title> 
<text></text> 
</Details> 
</article> 

我有以下XLST刪除細節和/詳細信息標籤

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

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

<xsl:template match="Details"><xsl:apply-templates/></xsl:template> 

預計產出

<?xml version="1.0" encoding="utf-8"?> 
<article> 

<date>Posted: 08/22/2011 </date> 
<title>Hi this is Jake. I am Smart</title> 
<text></text> 

</article> 

我試過了。但它並沒有刪除 「Details」和「/ Details」標籤。

+1

鑑於您的詳細信息,你的變身確實產生想要的輸出。因此,您可能會顯示過於簡化的輸入XML版本,或者您可能會使用錯誤的XSLT處理器。 –

+2

@ _aniket69:你好像很困惑。你提供的解決方案,恰好是我的,*是*產生想要的結果。您可以:1.正在使用不同的源XML文檔,最可能的是使用默認的命名空間; 2.使用的代碼與提供的代碼不同; 3.正在使用不兼容/有問題的XSLT處理器;或4.任何組合1 - 3. –

回答

0

<xsl:template match="Details"><xsl:apply-templates/></xsl:template> 

刪除<Details>本身,但它也將處理其內容。使用

<xsl:template match="Details" /> 

將其完全移除(標記和內容)。

(如果<Details>仍出現在輸出,那麼你的問題是不完整的。)

+0

謝謝。我想刪除標籤而不是其內容。只需將

從XML中刪除 –

+0

@ aniket69:這就是您的示例XSL樣式表已經完成的操作。 – Tomalak