Bonjour,

Prenons un XML de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?xml version="1.0" encoding="utf-8" ?>
<pipo>
  <totos>
    <blabla>aaa</blabla>
    <blabla>bbb</blabla>
    <blabla>ccc</blabla>
  </totos>
  <gigis>
    <mumu>hhh</mumu>
    <mumu>kkk</mumu>
    <mumu>vvv</mumu>
  </gigis>
  <dudus xmlns="loulou">
    <riri>111</riri>
    <riri>222</riri>
    <riri>333</riri>
  </dudus>
</pipo>
Je désire construire 2 fichiers XSL :

  • le premier donnerait en sortie tout le fichier sans le sous arbre <dudus>,
  • le deuxième donnerait en sortie uniquement le sous arbre <dudus>.


Comment faire sachant que le NameSapce est variable d'un XML a un autre ?

J'ai bien trouvé ça pour le 2ème XSL, mais en spécifiant le Name Space hélas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:zz="loulou">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="/">
    <xsl:apply-templates select="//zz:dudus"/>
  </xsl:template>
</xsl:stylesheet>
Merci.