Bonjour à tous,

Je veux tout simplement extraire une partie d'un fichier xml.
J'ai eu beau lire le cours de Erwan Lamoureux sur le noeud courant j'ai dû mal à comprendre dans le cas précis qui suit :

Voilà la feuille de style :

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE xsl:stylesheet  [
	<!ENTITY nbsp   " ">
	<!ENTITY copy   "©">
	<!ENTITY reg    "®">
	<!ENTITY trade  "™">
	<!ENTITY mdash  "—">
	<!ENTITY ldquo  "“">
	<!ENTITY rdquo  "”"> 
	<!ENTITY pound  "£">
	<!ENTITY yen    "¥">
	<!ENTITY euro   "€">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" version="1.0" standalone="yes" omit-xml-declaration="no"/>
 
<xsl:template match="/">
<xsl:comment>Fichier XML servant à l'importation des listes de villes par département dans Web QFQDMV et fichiers_qfqdmv pour FileMaker Pro </xsl:comment>
<xsl:comment>Fichier XML servant à élaborer liste de villes pour la création d'encarts en version web du Back Office </xsl:comment>
</xsl:template>
 
<xsl:template match="/quifaitqqfqdmv">
<xsl:apply-templates select="self::quifaitqqfqdmv/child::Départements_child_villes">
<xsl:sort data-type="number" select="child::IdVille" order="ascending"/>
</xsl:apply-templates>
<xsl:value-of select="current()"/>
</xsl:template>
 
<xsl:template match="/quifaitqqfqdmv/child::Départements_child_villes">
 
<xsl:copy-of select="child::IdVille"/>
<xsl:copy-of select="child::IdDépartement"/>
<xsl:copy-of select="child::code_postal_ville"/>
<xsl:copy-of select="child::nom_ville"/>
 
</xsl:template>
 
</xsl:stylesheet>
et la structure du xml d'entrée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?xml .... ?>
<quifaitqqfqdmv>
<....></....>
<Départements_child_villes>
<IdVille></IdVille>
<IdDépartement></IdDépartement>
<code_postal_ville></code_postal_ville>
<nom_ville></nom_ville>
</Départements_child_villes>
</quifaitqqfqdmv>
Si je reprends ce que j'ai compris du comportement du processeur :
Le noeud courant au départ est le noeud racine, puis la déclaration xml, etc..., enfin l'élément quifaitqqfqdmv. Là application du premier template "/quifaitqqfqdmv", appel du template
Code : Sélectionner tout - Visualiser dans une fenêtre à part
"/quifaitqqfqdmv/child::Départements_child_villes"
, déplacement du noeud courant vers chaque noeud Départements_child_villes de la liste résultat. Les chemins xpath "child::IdVille", etc... devraient donc être valides.

Or, je n'ai rien que la sortie du template "/".

Désolé pour ce post un peu long, mais les débuts sont difficiles...

A plus,
Fred