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 :
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 :
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
"/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
Partager