[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-wpkg/sources/www/bin/ -> concat.xsl (source)

   1  <?xml version="1.0" encoding="iso-8859-1"?>
   2  <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
   3     <xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes" />
   4     <xsl:param name="fichier">nomdefichierbidon</xsl:param>
   5     <xsl:variable name="wpkg" select="document('/var/www/se3/wpkg/xml/wpkg.xml')/wpkg"/>
   6     <!-- 
   7      Ajoute les données de $fichier à wpkg.xml (destiné au client de gestion wpkg)
   8      les noeuds déja existants de wpkg.xml qui provenaient de $fichier sont mis à jours ou effacés (pas dupliqués)
   9      Peut s'utiliser à partir d'un fichier wpkg.xml vide :
  10          <?xml version="1.0" encoding="iso-8859-1"?>
  11          <wpkg />
  12      
  13      F="profiles.xml";xsltproc \-\-stringparam fichier "$F" -o wpkg.xml concat.xsl "$F"
  14      
  15     -->
  16  
  17      <xsl:template match="/">
  18          <!-- insère le noeud racine ( /wpkg )-->
  19          <xsl:element name = "wpkg" >
  20              <!-- insère le noeud des hosts ( /wpkg/wpkg )-->
  21              <xsl:element name = "wpkg" >
  22                  <xsl:copy-of select = "$wpkg/wpkg/host[not(@fichier=$fichier)]" />
  23                  <xsl:apply-templates select = "wpkg/host" mode="withFichier"/>
  24              </xsl:element>
  25  
  26              <!-- insère le noeud des profiles ( /wpkg/profiles )-->
  27              <xsl:element name = "profiles" >
  28                  <xsl:copy-of select = "$wpkg/profiles/profile[not(@fichier=$fichier)]" />
  29                  <xsl:apply-templates select = "profiles/profile" mode="withFichier"/>
  30              </xsl:element>
  31  
  32              <!-- insère le noeud des packages ( /wpkg/packages )-->
  33              <xsl:element name = "packages" >
  34                  <xsl:copy-of select = "$wpkg/packages/package[not(@fichier=$fichier)]" />
  35                  <xsl:apply-templates select = "packages/package" mode="withFichier"/>
  36              </xsl:element>
  37          </xsl:element>
  38      </xsl:template>
  39     
  40      <xsl:template match="/*/*" mode="withFichier">
  41          <!-- recopie les noeuds host, profile ou package en ajoutant le nom du fichier d'origine -->
  42  <!-- 
  43          <xsl:comment>
  44              <xsl:text> fichier=</xsl:text><xsl:value-of select="$fichier" />
  45              <xsl:text>, nodeName=</xsl:text><xsl:value-of select="name()" />
  46              <xsl:text>, name=</xsl:text><xsl:value-of select="@name" />
  47              <xsl:text>, id=</xsl:text><xsl:value-of select="@id" />
  48          </xsl:comment>
  49  -->
  50          <xsl:copy>
  51              <!-- Mémorise le fichier source des données si ce n'est pas un des 3 fichiers profiles.xml, hosts.xml, packages.xml -->
  52              <xsl:if test="contains($fichier, '/')">
  53                  <xsl:attribute name="fichier" ><xsl:value-of select="$fichier" /></xsl:attribute>
  54              </xsl:if>
  55              <!-- recopie les attributs -->
  56              <xsl:apply-templates select = "@*"/>
  57              <xsl:copy-of select="*"/>
  58          </xsl:copy>
  59      </xsl:template>
  60  
  61      <xsl:template match="*">
  62          <!-- recopie les noeuds -->
  63          <xsl:copy-of select="." />
  64      </xsl:template>
  65  
  66      <xsl:template match="@*">
  67          <!-- recopie les attributs -->
  68          <xsl:copy />
  69      </xsl:template>
  70  
  71  </xsl:stylesheet>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1