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 avec la fonction name()


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Par défaut [xslt]Problème avec la fonction name()
    Bonjour,
    Voici mon problème.

    Je créé des documents HTML contenant des footnotes (notes de bas de page).

    Imaginons que dans le premier paragraphe j'ai la footnote 1, dans le second paragraphe j'ai la footnote 2 et enfin dans le 3eme paragrape la footnote 3.

    De plus la footnote 2 contient des liens vers footnote 1 et 2.

    Dans mon xml j'ai donc quelque chose de ce genre:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <para>Pour plus de détails consulter la note<footnote fid='1111'>Cette note est en bas de page</footnote>.
    </para>
    <para>
    Dans ce paragraphe le footnote 2 <footnote fid='2222'>La footnote qui suit pointe vers <link-xref target-id='1111'> et <link-xref target-id='3333'></footnote>
    </para>
    <para>
    Dernier paragraphe et dernière footnote <footnote fid='3333'>footnote 3</footnote>.
    </para>
    </para>
    Donc pour résumer, dans le premier paragraphe, je créé la footnote d'identifiant 1111.
    Dans le second paragraphe je créé la footnote d'identifiant 2222 qui pointe (link-xref) vers la footnote 1 (target-id='1111') et la 3 (target-id='3333').
    Dans le 3eme paragraphe la footnote d'identifiant 3333.

    J'utilise le XSL suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:when test="name(id(@target-id)) = 'footnote'">
    Qui me donne le nom du tag correspondant au target-id. Par exemple dans la footnote 2, j'ai un name(id(1111)) qui me retourne 'footnote'.
    Mon problème c'est que pour name(id(2222)) je n'obtiens pas footnote!?

    En fait lorsque j'ai 3 tags A - B - C, si j'appelle name() depuis B, je peux récupérer le type de A mais pas celui de C?
    Est-ce normal sachant que j'utilise des identifiants?... Comment faire?

    Merci

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Tu es sur que dans ta dtd (ou ton xsd) fid est detype id et qu'il est unique dans tout le document ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Par défaut
    Il n'y a pas de pb avc la DTD.

    Je suis sûr que l'identifiant est unique. J'ai le xml sous les yeux et j'ai fait une recherche sur l'ensemble du document.

    En fait, tout simplement, un name(IDF) ne fonctionne pas dans mon cas si je suis avant le tag pointé par IDF... Si je suis après le tag IDF, name me retourne le bon tag

  4. #4
    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,

    quels sont le parseur et le processeur XSLT que tu utilises ? Ca m'a tout l'air d'un parseur non validant et d'un processeur qui émule (mal) la fonction id()...
    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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Par défaut
    Le parseur est SAXON et le processeur Saxon aussi (dsl pr l'erreur)

Discussions similaires

  1. [XSLT] Problème avec la fonction contains
    Par yozart dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 24/11/2008, 14h57
  2. [XSLT]Probléme avec une fonction php dans un fichier xsl!
    Par Mo_Poly dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/10/2007, 07h32
  3. [XSLT] problème avec attribut name
    Par hippoX dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 17/04/2007, 17h26
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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