2010-04-02 5 views
1

j'ai un webservice qui retourne un XML comme ceci:balises XML flush ayant certaine valeur

<?xml version="1.0" encoding="UTF-8"?> 
<contractInformation> 
    <contract> 
     <idContract type="int">87191827</idContract>   
     <region type="varchar">null</region> 
     <dueDate type="varchar">null</dueDate> 
     <contactName type="varchar">John Smith</contactName> 
    </contract> 
</contractInformation> 

Je veux vider chaque balise qui contient la chaîne nulle, donc il serait ressembler à ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<contractInformation> 
    <contract> 
     <idContract type="int">87191827</idContract>   
     <region type="varchar"/> 
     <dueDate type="varchar"/> 
     <contactName type="varchar">John Smith</contactName> 
    </contract> 
</contractInformation> 

Comment accomplir cela en utilisant XSLT?

Répondre

3

utilisation et remplacer la règle d'identité:

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

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

<xsl:template match="text()[.='null']"/> 
</xsl:stylesheet> 
Questions connexes