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 :

Comment changer la valeur d'un attribut avec une stylesheet?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Comment changer la valeur d'un attribut avec une stylesheet?
    J'ai un fichier xml contenant un grand nombre de noeuds imbriqués les uns dans les autres et je voudrais remplacer la valeur de l'attribut 'Name' de tous les noeuds 'Item' lorsque la valeur de l'attribut vaut 'Text'. ( un find & replace de <item Name="Text"> par <item Name="Body"> )
    Je voudrais effectuer cette transformation avec un xslt mais je tourne en rond depuis des heures : soit j'ai une copie conforme de l'xml de départ, soit je n'ai que les valeurs sans les noeuds !

    En résumé, j'ai ceci:
    <node1>
    ..<node2 attrib1="test">
    ....<item Name="Text">
    ......<node3 attrib="...">...</node3>
    ......etc
    ....</item>
    ....<item Name="Subject">Ceci est le sujet</item>
    ...... etc
    ..</node2>
    ..<node2 attrib1="un autre test">
    ....<item Name="Text">
    ...... etc
    ....</item>
    ..</node2>
    </node1>

    Et je voudrais ceci:
    <node1>
    ..<node2 attrib1="test">
    ....<item Name="Body">
    ......<node3 attrib="...">...</node3>
    ......etc
    ....</item>
    ....<item Name="Subject">Ceci est le sujet</item>
    ...... etc
    ..</node2>
    ..<node2 attrib1="un autre test">
    ....<item Name="Body">
    ...... etc
    ....</item>
    ..</node2>
    </node1>

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Deux chose à faire:

    La première, je ne connait pas ton niveau:

    C'est de lire les tutoriels du site et d'essayé de comprendre tes erreurs.

    Et si tu connait XSLT ou que tu as déjà lu les tutoriels, poste ton XSLT afin de voir les erreurs que tu as commises.

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    montre nous ton xslt

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
    xmlns:dxl="http://www.lotus.com/dxl" version="1.0" 
    xmlns:xalan="http://xml.apache.org/xslt" exclude-result-prefixes="dxl">
    <xsl:output method="xml" indent="yes"/>
    	<xsl:template match="item[@name]='Text'">
    			<item name="Body">
    					<xsl:copy><xsl:apply-templates/></xsl:copy>				
    			</item>
    	</xsl:template>
    </xsl:stylesheet>
    Mais dans IE, je reçois l'erreur
    The XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


    --------------------------------------------------------------------------------

    Expected token 'eof' found '='. item[@name]-->=<--'Text'


Discussions similaires

  1. [XL-2007] Comment changer les couleurs d'un graph avec une macro?
    Par abfabulous dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2013, 12h43
  2. Réponses: 2
    Dernier message: 05/03/2012, 19h35
  3. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  4. [AJAX] Changer la valeur d'un input avec une valeur récupérée en php
    Par leroidje dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/08/2008, 15h12
  5. Comment changer la valeur d'un input selon une liste déroulante
    Par dreyo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/02/2007, 15h22

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