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

Servlets/JSP Java Discussion :

Afficher un XML avec un XSLT le mettant en forme dans un JSP


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Courgette17
    Invité(e)
    Par défaut Afficher un XML avec un XSLT le mettant en forme dans un JSP
    Bonjour à tous,

    Voici mon problème:
    Je veux afficher un XML et le transformer ensuite avec un XSL.
    Je veux que cela se passe dans une page JSP dans laquelle je passe le fichier XML en paramètre dans la barre d´adresse.

    Voici mon code:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <html>
    <head>
    <jsp:useBean id="database" class="******.DatabaseInteraction" />
    <% String nomdocument = request.getParameter("instance"); 
    String xmlInstance = database.getInstance(nomdocument);
    %>
    <script>
    function loadXMLDoc(fname)
    {
    var xmlDoc;
    // code for IE
    if (window.ActiveXObject)
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument)
      {
      xmlDoc=document.implementation.createDocument("","",null);
      }
    else
      {
      alert('Your browser cannot handle this script');
      }
    xmlDoc.async=false;
    xmlDoc.load(fname);
    return(xmlDoc);
    }
     
    function displayResult()
    {
    xml=loadXMLDoc(xmlInstance);
    xsl=loadXMLDoc("AS5.xsl");
    // code for IE
    if (window.ActiveXObject)
      {
      ex=xml.transformNode(xsl);
      document.getElementById("example").innerHTML=ex;
      }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument)
      {
      xsltProcessor=new XSLTProcessor();
      xsltProcessor.importStylesheet(xsl);
      resultDocument = xsltProcessor.transformToFragment(xml,document);
      document.getElementById("example").appendChild(resultDocument);
      }
    }
    </script>
    <title>Data Collector</title>
    </head>
    <body id="example" onLoad="displayResult()">
    </body>
    </html>
    Malheureusement le fichier est situé dans une base de données et il faut que je transforme la variable xmlinstance en objet. Sinon le LoadXmlDoc ne le récupère pas correctement et j´ai le droit à tout le XML dans le code source.

    Est-ce qu´il est possible de passer un objet d´un code en JSP à un script JavaScript? Si oui, comment puis je faire?

    Est-ce qu´il existe un code plus simple pour faire la transformation XML/XSLT en JSP?

    Voila tout,

    Merci d´avance,

    Cordialement,

    MadMarc52
    Dernière modification par Courgette17 ; 07/07/2009 à 22h10.

  2. #2
    Courgette17
    Invité(e)
    Par défaut
    Ça n´existe pas dans ce langage?
    Ce n´est pas possible?



    Je ne sais pas je demande.


    Merci d´avance,


    MadMarc52

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Pas le temps de te répondre longuement, mais tu ne devrais pas faire ça en javascript, mieux vaut récupérer ton XML dans une servlet (ou pourquoi pas salement dans ta JSP), en java donc, et le transformer via les librairies javax.xml.jeSaisPlusQuoiTransfmormer.

    Je n'ai plus les noms, des classes qui te serviraient, mais cherche sur le web java + xslt, tu devrais trouver sans problème.

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    En fait il deux options :

    • La première de feignant consiste à retourner le xml avec la directive de traitement: <?xml-stylesheet type="text/xsl" href="transform.xsl"?>. Celle-ci donne instruction au navigateur d'appliquer la feuille de style avant présentation. Mais attention, en inspectant le code source, on dévoile le document xml avant transformation;
    • La seconde c'est comme te l'a suggéré mixouille de réaliser la transformation côté serveur. Voir http://java.developpez.com/faq/xml/?...lt#creerXmlDom

  5. #5
    Courgette17
    Invité(e)
    Par défaut
    Merci pour vos réponses.

    Tommy31, aurais tu un exemple complet concernant la solution feignante?
    Le fait que le nom du fichier xml soit visible ne me dérange pas vu qu´il sera de toute façon dans la barre d´adresses.

  6. #6
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par MadMarc52 Voir le message
    Merci pour vos réponses.
    Le fait que le nom du fichier xml soit visible ne me dérange pas vu qu´il sera de toute façon dans la barre d´adresses.
    C'est pas le nom qui est visible, mais son contenu.
    Pour l'exemple, tu rajoute la ligne suivante dans xml retourné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="transform.xsl"?>
    Bien entendu, ta feuille de style (transform.xsl, tu la nomme comme tu veux) doit être accessible (ie servie par ton serveur).

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/07/2011, 13h57
  2. Fichier XML avec groupes et sa mise en forme XSL
    Par Pingva dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 08/07/2011, 16h57
  3. Afficher du XML avec XSL (AJAX)
    Par mazflo007 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/04/2010, 17h03
  4. [XSLT] Liaison implicite d'un XML avec son XSLT
    Par jamulion dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/09/2006, 10h08
  5. Afficher du XML avec du HTML
    Par BipBip2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 05/04/2005, 10h45

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