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] [XPath] Nombre d'ancètres


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut [XSLT] [XPath] Nombre d'ancètres
    Hello,
    Je voudrais faire un template avec un match sur un élément qui n'a qu'un seul ancètre, c'est-à-dire eui est juste dans la racine.
    J'ai le code suivant, mais il me met l'erreur: "Le préfixe de l'espace de noms ancestor n'est pas déclaré..."
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:def="www.ploxien.com/ns/def" xmlns:pr="http://www.arcaciel.com/profil/ns/system">
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
        <xsl:template match="xs:schema">
            <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:pr="http://www.arcaciel.com/profil/ns/system">
                <body>
                    <xsl:apply-templates/>
                </body>
            </html>
        </xsl:template>
        <xsl:template match="xs:element[count(self::ancestor:*) = 1]">
            ...
            <br/>
            <xsl:value-of select="@type"/> : <xsl:value-of select="@name"/>
            <br/>
        </xsl:template>
    </xsl:stylesheet>
    Vous voyez de quoi vient l'erreur?
    Merci

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    ancestor est un axe au même titre que self, tu ne peux pas utiliser les deux en même temps dans un "pas" XPath.

    Pour créer un template ne "matchant" que les <xs:element> fils de <xs:schema>, il existe une écriture toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="xs:schema/xs:element">
    ...
    </xsl:template>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    En fait, ce que je cherchais... Merci a+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="xs:element[count(ancestor::*) = 1]">

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

Discussions similaires

  1. [XSLT][XPATH] Nombre d'élèment ayant pour nom..
    Par SONY30 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 26/04/2007, 13h49
  2. xslt+xpath
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/10/2005, 15h08
  3. [XSLT+XPath] Échapper les accolades XPath
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 30/09/2005, 23h04
  4. [XPATH] Nombres de noeuds freres ?
    Par DemonKN dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 28/02/2005, 12h29

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