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 :

[Java] Passe de Node de XSLT à Java


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut [Java] Passe de Node de XSLT à Java
    Bonjour,

    J'ai quelques soucis pour transmettre correctement un noeud depuis un XSLT en appelant une fonction Java.

    J'ai dans mon fichier XSLT un appel à une fonction java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java:maFonction($monNoeud)
    Bref, rien de bien exceptionnel.

    La fonction java récupère donc un Node, jusque là tout va bien, elle arrive à le lire sans soucis, je peux appeler toutes les méthodes sans problème (getNodeName, etc...), mais quand je veux récupérer un sous-noeud à partir du xpath (via un élément javax.xml.xpath.XPath), là ça me fait une "Erreur inconnue détectée dans XPath", message au combien explicite pour m'aider à résoudre le problème…

    J'ai évidemment testé ma fonction en Java en l'appliquant exactement sur le même noeud, et ça passe nickel. Je suppose donc que l'appel via XSLT doit renvoyer un noeud erroné, mais je vois pas en quoi, vu que je peux accéder à ses pères/fils sans aucun soucis, je comprends pas pourquoi je peux pas exécuter de xpath dessus.

    Si quelqu'un a une explication/solution, je suis donc preneur.

    Je peux aussi contourner le problème si quelqu'un connaît un moyen en XSL-T de renvoyer des paramètres de retour dans un template appelé via un call-template, bref de faire des vrais fonctions. (à savoir que les fonctions EXSLT ne marchent pas dans mon cas, cf sujet posté il y a quelques semaines).

    Merci d'avance.

  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,

    quel processeur utilises-tu ? Xalan, Saxon ... ? Et quelle est l'expression XPath qui pose problème ?
    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 confirmé
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut
    Xalan, et pour l'expression quoi que je mette ça merde, même avec "."

  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
    AMHA, il faut que tu utilises le moteur XPath implémenté dans Xalan (org.apache.xpath.XPathAPI)...
    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 confirmé
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut
    Bon, merci pour tout ça, mais malheureusement, ça n'a pas l'air de suffire, j'ai maintenant un bug encore plus étrange.
    Je récupère donc le XObject avec XPathAPI.eval, de là j'en tire une nodelist, de cette nodelist je sais qu'elle est pas null et qu'elle contient un et un seul élément, et dès que je fais nl.item(0), sans même vouloir faire quoi que ce soit de plus, j'ai droit à une "Erreur : ''" ce qui est toujours aussi parlant.

    Voilà un extrait de la console pour un peu que ça puisse être utile… Mais je me sens un peu perdu là, c'est vraiment des erreurs qu'ont aucune logique. :-/ Comment une NodeList qui contient un élément peut déclencher une erreur simplement en voulant le récupérer ? :-/
    Évidemment encore une fois, en appelant mes fonctions depuis java et non depuis le XSL-T, ça marche…
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ERREUR :  ''
    Erreur Transformation XSLT
    javax.xml.transform.TransformerException: java.lang.NullPointerException
    	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
    	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
    	at xml.hl7.outil.DocumentXML.appliquerXSLT(DocumentXML.java:643)
    	at xml.hl7.outil.DocumentXML.appliquer

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    je n'y connais rien, mais es tu sur de ton indice "0" ?
    dans la ligne :


Discussions similaires

  1. [XSLT] xslt en java
    Par yass dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 12/09/2008, 16h41
  2. [XSLT] Problème de transformation XSLT avec JAVA
    Par ploxien dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 28/09/2007, 16h47
  3. Librairie java pour parser des expressions XSLT
    Par daytona955 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/03/2007, 09h46
  4. [XSLT] java.lang.ArrayIndexOutOfBoundsException sur Transformation XSLT
    Par SONY30 dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 11/12/2006, 16h59
  5. Réponses: 4
    Dernier message: 05/10/2005, 18h19

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