IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] XML vers XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 19
    Points : 16
    Points
    16
    Par défaut [XSLT] XML vers XML
    Bonjour.

    Ca fait deux jours que je galere avec XSLT. Je comprends decidement rien a la logique

    J'ai le fichier XML suivant :

    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
    38
    39
    40
    41
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <rss xmlns:bulletinselectroniques="http://www.toto.com/rss/">
        <channel>
          <title>Toute l'actualité "Aéronautique" parue dans les BE</title>
          <link></link>
          <description>blabla</description>
          <pubDate>Mon, 16 Apr 2007 17:16:56 +0200</pubDate>
          <lastBuildDate>Mon, 16 Apr 2007 17:16:56 +0200</lastBuildDate>
          <copyright>tous droits réservés</copyright>
          <language>fr</language>
          <webMaster>toto</webMaster>
          <generator></generator>
          <docs></docs>
        <image>
                <title>BE : l'actualité internationale "Aéronautique"</title>
                <url>http://www.toto.com/Resources_fm/rssimage03/1010101001.jpeg</url>
                <link>http://www.toto.com/acceuil/1010101001.php</link>
            </image><item>
                <title>title1</title>
                <bulletinselectroniques:breveCode>1</bulletinselectroniques:breveCode>
            </item><item>
                <title>title2</title>
                <bulletinselectroniques:breveCode>2</bulletinselectroniques:breveCode>
            </item><item>
                <title>title3</title>
                <bulletinselectroniques:breveCode>3</bulletinselectroniques:breveCode>
            </item><item>
                <title>title4</title>
                <bulletinselectroniques:breveCode>4</bulletinselectroniques:breveCode>
            </item><item>
                <title>title2</title>
                <bulletinselectroniques:breveCode>2</bulletinselectroniques:breveCode>
            </item><item>
                <title>title4</title>
                <bulletinselectroniques:breveCode>4</bulletinselectroniques:breveCode>
            </item><item>
                <title>title5</title>
                <bulletinselectroniques:breveCode>5</bulletinselectroniques:breveCode>
            </item>
      </channel>
    </rss>
    J'ai reussit a dedoublonner les items ayant le meme breveCode grace a ce XTPL (et la methode de Muench)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:bulletinselectroniques="http://www.bulletins-electroniques.com/rss/">
        <xsl:output method="xml" encoding="ISO-8859-1" omit-xml-declaration="no" version="1.0" indent="yes" />
        <xsl:key name="regrouper" match="item" use="bulletinselectroniques:breveCode"/>
        <xsl:template match="/">
                <xsl:apply-templates select="rss/channel/item[generate-id()=generate-id(key('regrouper',bulletinselectroniques:breveCode)[1])]"/>
        </xsl:template>
        <xsl:template match="item">
                <xsl:copy-of select="."/>
        </xsl:template>
    </xsl:stylesheet>
    Ca donne ca :

    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
    		<item xmlns:bulletinselectroniques="http://www.bulletins-electroniques.com/rss/">
    			<title>title1</title>
    			<bulletinselectroniques:breveCode>1</bulletinselectroniques:breveCode>
    		</item><item xmlns:bulletinselectroniques="http://www.bulletins-electroniques.com/rss/">
    			<title>title2</title>
    			<bulletinselectroniques:breveCode>2</bulletinselectroniques:breveCode>
    		</item><item xmlns:bulletinselectroniques="http://www.bulletins-electroniques.com/rss/">
     
    			<title>title3</title>
    			<bulletinselectroniques:breveCode>3</bulletinselectroniques:breveCode>
    		</item><item xmlns:bulletinselectroniques="http://www.bulletins-electroniques.com/rss/">
    			<title>title4</title>
    			<bulletinselectroniques:breveCode>4</bulletinselectroniques:breveCode>
    		</item><item xmlns:bulletinselectroniques="http://www.bulletins-electroniques.com/rss/">
    			<title>title5</title>
     
    			<bulletinselectroniques:breveCode>5</bulletinselectroniques:breveCode>
    		</item>
    Par contre, je voudrais aussi recuperer tout ce qu'il y a autour du fichier XML (<rss>, <channel> et tous ses autres fils)

    Malheureusement, la patern par defaut ne fonctionne pas si je la rajoute a mon XSLT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xsl:template match="*|@*|node()">
      <xsl:copy>
        <xsl:apply-templates select="*|@*|node()" />
      </xsl:copy>
    </xsl:template>
    Quelqu'un peut me dire ce que je dois rajouter dans mon XSLT pour completer mon fichier XML ? Merci d'avance

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Sans la fameuse méthode, voici ma proposition qui me semble plus facile à comprendre :
    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
    <xsl:stylesheet version="1.0" txs:name="aplati" xmlns:bulletinselectroniques="http://www.toto.com/rss/">
     <xsl:template match="*[name()!='item']|@*|node()">
      <xsl:copy>
        <xsl:apply-templates select="*|@*|node()" />
      </xsl:copy>
     </xsl:template>
     <xsl:template match="item">
      <xsl:variable name="b" select="bulletinselectroniques:breveCode"/>
      <xsl:if test="count(preceding-sibling::item[bulletinselectroniques:breveCode=$b])=0">
       <xsl:copy>
        <xsl:apply-templates select="*|@*|node()" />
       </xsl:copy>
      </xsl:if>
     </xsl:template>
    </xsl:stylesheet>
    (testé avec http://www.agencexml.com/txs/fr)
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Ca marche fort bien, en effet.
    Merci infiniment !

Discussions similaires

  1. [XSLT]XML vers XML avec des transformations de texte au passage
    Par samcsharpandco dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/11/2007, 17h15
  2. [XSLT]retour charriot xml vers html
    Par toma22 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/10/2007, 19h07
  3. [XSLT] processeur pour une transformation XML vers XML
    Par fanette dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/06/2006, 12h46
  4. [XSLT] transformation xml vers xml
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/02/2006, 11h02
  5. [XSLT] XML vers XML
    Par ren0 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/10/2004, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo