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:Remplacer valeur d'un attribut par copntenu d'une balise


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Par défaut xslt:Remplacer valeur d'un attribut par copntenu d'une balise
    slt
    je veux parcourir mon fichier wordml, rechercher les attributs w:name de la balise w:bindata et les remplacer leurs valeurs par la valeur d'ue autre balise.
    kk1 peut maider
    merci davance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="w:bindata/@w:name">
      <xsl:attribute name="{name()}" namespace="{namespace-uri()}">
        <xsl:value-of select="../path/relatif/vers/la/valeur"/>
      </xsl:attribute>
    </xsl:template>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Par défaut
    merci. sa marche. mais il prend toutes les valeurs de la balise pour chaque attribut w:name.j'ai essayé le xsl:for-each mais sa marche tjrs pas

  4. #4
    Membre expérimenté
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Par défaut
    S'il prend toutes les valeurs, c'est que le "path relatif vers la valeur", comme sus-nommé par thelvin, n'est pas fourni correctement.

    Tu peux toujours donner un bout de code, pour voir la structure XML que tu as, et le cheminement que tu proposes pour récupérer la valeur. Je suis sûr que tu auras une âme charitable qui t'aidera

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Par défaut
    voilà mn code
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="2.0" xmlnssl="http://www.w3.org/1999/XSL/Transform" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint">
    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

    <xsl:template match="/|node() | @*">
    <xsl:copy>
    <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="/w:binData/@w:name">
    <xsl:attribute name="{name()}" namespace="{namespace-uri()}">
    <xsl:value-of select="//w:hlink[descendant::w:t[starts-with(.,'Figure')]]"/>



    </xsl:attribute>
    </xsl:template>

    </xsl:stylesheet>

    maids il me renvoit toutes les valeurs pour cette balise

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ben oui. J'ai dit que le chemin devait être relatif.
    Il ne doit pas commencer par //, ce qui force le retour à la racine.
    Il vaut mieux le faire commencer par .. ce qui ramène à la balise <w:binData> et continuer de là.

    Vu que tu ne nous a pas montré le fichier XML à transformer, je peux pas te dire quoi mettre à la place. De toute façon tu devrais apprendre XPath avant d'essayer de faire des trucs avancés.

    Note : Quand tu postes du code sur un forum, utilise la balise [CODE] (l'espèce de # dans la barre d'outils.)

    Note : / est déjà matché par node(), c'est donc redondant de faire /|node() dans une expression de matching.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [XSLT] remplacer valeur vide par espace
    Par Anubis dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/02/2008, 09h46
  2. changer la valeur d'un attribut par le contenu d'une balise
    Par joeyd dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/10/2007, 23h10
  3. Réponses: 11
    Dernier message: 12/04/2007, 12h28
  4. Réponses: 1
    Dernier message: 02/04/2007, 12h37
  5. remplacer les retour de ligne par <br> dans une chaine?
    Par cortex024 dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2006, 17h22

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