XML vers XML sans elements vides [XSL] - Divers - Programmation
Marsh Posté le 22-11-2002 à 17:42:01
Voici une solution possible 
 
Mais il reste un probleme a resoudre, les attributs 
 
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:user="userhtml"> 
 <xsl:output method="xml"/> 
 
 <xsl:variable name="CR" select="string(' 
' "/>
"/> 
 
  <xsl:template match="*"> 
 	<xsl:value-of select="$CR"/> 
    <xsl:choose> 
      <xsl:when test="count(*|text()[string-length(normalize-space(.))>0])"> 
        <xsl:copy> 
          <xsl:apply-templates/> 
        </xsl:copy> 
     	<xsl:value-of select="$CR"/> 
      </xsl:when> 
      <xsl:otherwise/> 
    </xsl:choose> 
  </xsl:template> 
   
</xsl:stylesheet>    
Marsh Posté le 21-11-2002 à 21:48:54
Je veux transformer (copier le contenu) un XML vers un autre XML en supprimant les elements vides.
Fichier d'entree
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<Row>
<Rank>1</Rank>
<ID>142</ID>
<Name></Name>
</Row>
<Row>
<Rank>2</Rank>
<ID>200</ID>
<Name>David</Name>
</Row>
<Row>
<Rank>2</Rank>
<ID>200</ID>
<Name/>
</Row>
<Data>
Fichier de sortie:
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<Row>
<Rank>1</Rank>
<ID>142</ID>
</Row>
<Row>
<Rank>2</Rank>
<ID>200</ID>
<Name>David</Name>
</Row>
<Row>
<Rank>2</Rank>
<ID>200</ID>
</Row>
<Data>
Que dois-je mettre dans mon fichier XSL ?
Merci