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 :

requête dont un attribut a un espace avant ou après


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 70
    Points : 52
    Points
    52
    Par défaut requête dont un attribut a un espace avant ou après
    Bonjour,
    J'ai le fichier xml suivant sourceTITIS.xml :

    <?xml version="1.0" encoding="UTF-16"?>
    <titis>
    <titi toto="tata " />
    </titis>


    et un fichier js dans lequel j'ai :

    sourceTITIS = new ActiveXObject("Msxml2.DOMDocument.3.0");
    sourceTITIS.async = false;
    sourceTITIS.resolveExternals = true;
    sourceTITIS.validateOnParse = true;
    sourceTITIS.loadXML("sourceTITIS.xml" );

    Si je fais la requête suivante en jscript :

    oNodeListTITIS = sourceTITIS.documentElement.selectNodes("//titis/titi[@toto='tata ']") ;
    il ne trouve rien ! on dirait que ça vient de l'espace après tata, est-ce normal ? pareil si l'espace se situe avant tata.

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    j'ai souvent utiliser XML mais je n'ai jamais utiliser un espace de cette façon.

    autrement, tu peux simplifier ton xpath :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /titis/titi[@toto='tata ']
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Normalement le XPath avec espace devrait marcher. Mais on touche à un cas très particulier, ici.

    La plupart du temps, dans un attribut, les whitespaces de début et de fin sont ignorés au parsing, et les whitespaces de milieu sont remplacés par un seul espace simple.

    La plupart du temps, sauf, officiellement, pour les attributs déclarés en CDATA, et les attributs non-déclarés (parce qu'ils pourraient être CDATA si seulement on les avait déclarés).

    Le truc étant que, des attributs non-déclarés, ce n'est censé être possible que si on utilise un parseur non-validant. Un parseur validant doit refuser tout ce qui n'est pas autorisé. Or, tu demandes à ton processeur XSLT de valider le document au parsing. Normalement il ne peut pas le faire, manifestement il le fait quand même. Comme un attribut non-déclaré n'existe pas pour un parseur validant, apparemment le parseur n'a pas fait exception pour lui, et ne l'a pas considéré comme un CDATA.

    Conclusion : les espaces inutiles dans les attributs, c'est la merde. DO NOT.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Merci pour ces pistes intéressantes, je comprends pourquoi alors.

    Je me suis débrouillé pour ne pas avoir d'espaces inutiles finalement.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/04/2009, 17h25
  2. Réponses: 4
    Dernier message: 29/08/2008, 11h53
  3. [XSLT] enlever espace avant et après un string
    Par nagdrir dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 10/09/2007, 16h18
  4. Espacement avant et après la balise <form>
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2006, 09h23
  5. [CSS]Taille de l'espacement avant et après d'un paragraphe
    Par Andry dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/02/2006, 12h26

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