2016-10-31 171 views
2

我正在使用下面的xslt刪除名稱空間。如何增強刪除空標籤?XSLT - 刪除空節點

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes" /> 

    <xsl:template match="*"> 
     <xsl:element name="{local-name()}"> 
      <xsl:apply-templates/> 
     </xsl:element> 
    </xsl:template> 


</xsl:stylesheet> 

回答

3

您可以去除任何空的要素如下:

<xsl:template match="*[not(normalize-space())]"/> 

而且你帶的命名空間模板不佔的屬性,所以你可能要擴展它,如下所示:

<xsl:template match="*"> 
<xsl:element name="{local-name()}"> 
    <xsl:for-each select="@*"> 
    <xsl:attribute name="{local-name()}"> 
     <xsl:value-of select="."/> 
    </xsl:attribute> 
    </xsl:for-each> 
    <xsl:apply-templates/> 
</xsl:element> 
</xsl:template>