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

Format d'échange (XML, JSON...) Java Discussion :

Problème d'évaluation des requètes XPath en Java [XPATH]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut Problème d'évaluation des requètes XPath en Java
    Bonjour à toutes et à tous :
    J'ai un problème d'évaluation des requêtes avec le xerces Java, quand j'évalue des requètes avec des parenthèse précédé par un axe "/", comme la requète :
    /root/(child1 union child2)[qualifier]
    il m'affiche l'erreur suivante :
    javax.xml.transform.TransformerException: Une étape d'emplacement était attendue après le jeton ''/'' ou ''//''.
    Merci de bien vouloir m'aider

    --------------------------------------
    Autant qu'elle nous réjouit, elle nous fait pleurer.
    Autant qu'elle nous donne elle nous retire.

  2. #2
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Et comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /root/child1[qualifier] | /root/child2[qualifier]
    Il y a peut-être mieux ...

  3. #3
    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
    On peut aussi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (/root/child1 | /root/child2)[qualifier]
    Après, le sens dépend du contenu précis de "qualifier"

    (Et tout cela n'a rien à voir avec Java.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut Problème d'évaluation des requètes XPath en Java
    Merci pour vos aides tous les deux ,
    mais en faisant comme ça :
    /root/child1[predicat] | /root/child2[predicat] et trop couteux dans mon cas puisque j'ai une requête que je la construit en temps linéaire en utilisant l'union mais en la décomposant en sous-requête la complexité de mon traitement devient exponentielle, pour cela je cherche à l'évaluer telle quelle est écrite (avec les parenthèses) si vous pourriez bien m'aider,
    Pour la deuxième réponse, le problème est bien lié avec Java, puisque sur un éditeur XML comme Oxygen Editor, la requête telle quelle est décrite s'exécute sans aucun problème, mais avec le parseur xerces, les parenthèses posent une exception.

  5. #5
    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
    Il y a aussi :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    /root/*[self::child1 or self::child2][predicat]

    ou bien

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:for-each select="/root">
      <xsl:variable name="selection" select="(child1 | child2)[predicat]"/>
      <!-- Faire quelque chose avec $selection -->
    </xsl:for-each>

    Pour la deuxième réponse, le problème est bien lié avec Java, puisque sur un éditeur XML comme Oxygen Editor, la requête telle quelle est décrite s'exécute sans aucun problème, mais avec le parseur xerces, les parenthèses posent une exception.
    Bon si tu veux, mais :

    - Xerces est un parseur XML, pas XPath. Tu confonds avec Xalan.
    - Xalan, à ma connaissance, ne gère que XSLT 1.0, pas XSLT 2.0. La syntaxe que tu utilises est du XPath 2.0, utilisable uniquement dans du XSLT 2.0.

    => Saxon gère XSLT 2.0. Utilise ça et tout devrait aller très bien.

    Je suis encore assez peu habitué à XPath 2.0, pas assez géré dans le monde à mon goût.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Il y a aussi :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    /root/*[self::child1 or self::child2][predicat]

    ou bien

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:for-each select="/root">
      <xsl:variable name="selection" select="(child1 | child2)[predicat]"/>
      <!-- Faire quelque chose avec $selection -->
    </xsl:for-each>



    Bon si tu veux, mais :

    - Xerces est un parseur XML, pas XPath. Tu confonds avec Xalan.
    - Xalan, à ma connaissance, ne gère que XSLT 1.0, pas XSLT 2.0. La syntaxe que tu utilises est du XPath 2.0, utilisable uniquement dans du XSLT 2.0.

    => Saxon gère XSLT 2.0. Utilise ça et tout devrait aller très bien.

    Je suis encore assez peu habitué à XPath 2.0, pas assez géré dans le monde à mon goût.
    Merci beaucoup pour votre aide, effectivement j'ai utilisé le saxon pour garder la meme structure et ca fonctionne à merveille.
    Encore merci pour votre réponse.

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

Discussions similaires

  1. [XL-2003] Problème de tri des requêtes
    Par Ctplm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2009, 08h40
  2. [MVC] Problème de gestion des requêtes
    Par Melmoutt dans le forum Spring Web
    Réponses: 0
    Dernier message: 16/09/2009, 17h30
  3. problèmes de migration des requêtes ajout vers SQL SERVER
    Par Sucden dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/04/2008, 07h39
  4. Réponses: 2
    Dernier message: 24/04/2007, 00h18
  5. [Postgres 8]Problème de priorité des requètes
    Par julienOriano dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 28/12/2005, 12h36

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