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] Problème pour : XML + XSLT(ou XSL) = XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut [XSLT] Problème pour : XML + XSLT(ou XSL) = XML
    Bonjour,

    Je suis débutant en XML et j'aimerai réaliser une transformation des noms de balises d'un xml à l'aide d'un fichier XSL (ou XSLT). J'ai fait plusieurs recherches sur le web mais je n'ai pas trouvé de réponses.
    J'ai vu qu'il était possible de générer un fichier HTML à partir d'un fichier XML et d'une transformation XSLT, mais moi j'aimerai obtenir un fichier XML et non pas HTML

    Voici le code du fichier xml source:

    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE WTDocument SYSTEM "standardX05.dtd">
    <WTDocument>
      <ObjectID>
        <localId>wt.doc.WTDocument:294806</localId>
        <ufid>wt.doc.WTDocument:294806|549723154-1133654300451-22488812-76-230-50-193|plm.plm.fr</ufid>
      </ObjectID>
      <objectContainerPath>/wt.inf.container.OrgContainer=utt/wt.pdmlink.PDMLinkProduct=Produit Test TX_Mon Nom</objectContainerPath>
      <organizationId> ((null))</organizationId>
      <number>0000001683</number>
      <masterUfid>wt.doc.WTDocumentMaster:294803|549723154-1133654300451-22488812-76-230-50-193|plm.plm.fr</masterUfid>
      <name>Fichier Word 2</name>
      <docType>$$Document</docType>
      <docTitle> ((null))</docTitle>
      <description> </description>
      <department>ENG</department>
      <domainName>/Default</domainName>
      <folderPath>/Default/Dossier1</folderPath>
      <versionInfo>
        <versionId>A</versionId>
        <iterationId>1</iterationId>
        <versionLevel>1</versionLevel>
      </versionInfo>
      <lifecycleInfo>
        <lifecycleTemplateName>Basic</lifecycleTemplateName>
        <lifecycleState>INWORK</lifecycleState>
      </lifecycleInfo>
      <teamIdentity> ((null))</teamIdentity>
      <externalTypeId>WCTYPE|wt.doc.WTDocument</externalTypeId>
      <contentItem>
        <contentId>CONTENTS/Fichier Word 2.doc</contentId>
        <contentType>ApplicationData</contentType>
        <category> ((null))</category>
        <fileName>Fichier Word 2.doc</fileName>
        <role>PRIMARY</role>
        <descriptor> ((null))</descriptor>
        <urlLocation> ((null))</urlLocation>
      </contentItem>
    </WTDocument>
    J'aimerai à l'aide d'un fichier xsl ou xslt générer un nouveau fichier xml avec la même structure que le fichier xml source sauf que la balise <category> change de nom et devienne <new_category>

    Voilà si quelqu'un peut m'aider ça serait vraiment cool.

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Bonjour,

    Voilà un code qui marche mais c'est tout
    D'autres personnes se feront un plaisir de te donner une solution beaucoup plus simple et beaucoup plus "belle"

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
     
      <xsl:template match="WTDocument">
      	<xsl:element name="WTDocument">
    	   <xsl:for-each select="*">
    	    	<xsl:if test="count(*)=0">
    	    		<xsl:copy-of select="."/>
    	    	</xsl:if>
    	    	<xsl:if test="count(*)!=0">
    	    		<xsl:element name="{name()}">
    	    		<xsl:for-each select="*">
        				<xsl:if test="name()='category'">
        					  	<xsl:element name="new_category">
        					  		<xsl:value-of select="."/>
        					    </xsl:element>
    	    			</xsl:if>
    	    			<xsl:if test="name()!='category'">
    	    				<xsl:copy-of select="."/>
    	    			</xsl:if>
    	   			</xsl:for-each> 
    	   			</xsl:element>			
    	    	</xsl:if>	
    	   </xsl:for-each>
       </xsl:element>
      </xsl:template>
     
    </xsl:stylesheet>
    Edit : Morbo par exemple

    Re-Edit : Surtout ne prend pas mon exemple.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Voili:
    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method = "xml"  version="1.0" encoding="UTF-8" omit-xml-declaration="no" standalone="yes" indent="yes"  />
     
    	<!-- Identity transformation template -->			
    	<xsl:template match="/ | @* | * | comment() | processing-instruction() | text()"> 
    		<xsl:copy> 
     
    			<xsl:apply-templates select="@* | * | comment() | processing-instruction() | text()"/> 
    		</xsl:copy> 
    	</xsl:template> 
     
    	<xsl:template match="category"> 
    		<new_category>
    				<xsl:apply-templates select="@* | * | comment() | processing-instruction() | text()"/> 
    		</new_category>
    	</xsl:template> 
     
     
    </xsl:stylesheet>
    EDIT: grilled

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    le modo s'est fait griller aussi continuer comme ça
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup pour votre aide!

    Je teste tout ça dans l'aprem.

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Bon, je viens de tester.

    J'ai un petit soucis de vrai débutant.

    Comment faire pour générer le nouveau xml?

    J'ai le fichier xml de départ et le fichier xsl de Morbo.

    Avec xmlspy, il me génére une page html...

    Est ce que quelqu'un peu me donner la procedure à suivre.

    Merci

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Hum, j'utilise pas xmlspy, mais il devrait pouvoir faire une sortie xml.
    J'utilise cooktop (qui peut utiliser différents processeur xlst) pour tester des transformations.
    Sinon tu peux :
    1. rajouter en entête du fichier xml
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <?xml-stylesheet type="text/xsl" href="chemin_du_XSL.xsl" ?>
    2. l'ouvrir avec un navigateur qui fera la transformation
    3. et enregistrer le résultat dans un fichier xml

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Avec cooktop ça marche très bien et je peux enregistrer le "result.xml".

    Merci pour ces infos, je n'utiliserai plus que cet outil, à mon niveau c'est amplement suffisant, d'autant plus qu'il est libre.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transformation XML/XSLT: Problème avec le &
    Par bobic dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/01/2009, 17h16
  2. [XML] [XSLT] Problème d'encodage des accents
    Par missllyss dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/06/2008, 16h01
  3. Réponses: 2
    Dernier message: 03/04/2007, 14h14
  4. [XSLT]Problème de transformation d'un document XML.
    Par JM_Cholet dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/01/2007, 13h29
  5. [XSLT]Problèmes pour regrouper selon l'attribut
    Par gharl dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 21/08/2006, 21h39

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