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 :

Ajout du Ref XSL dans XML a partir du code JAVA [XSLT]


Sujet :

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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Ajout du Ref XSL dans XML a partir du code JAVA
    Bonjour a tous encore ^^,

    J'ai voulu savoir est-ce que c'est possible d'ajouter une reference a un fichier XSL dans un fichier XML en java. Car je travail sur un projet ou je genere un fichier XML a partir du code JAVA le probleme c'est que biensur quand le fichier XML generer ne contient pas la reference au fichier XSL que j'ai deja preparer. J'ai voulu savoir est-ce possible d'ajouter cette reference a partir du code JAVA. Merci d'avance pour vos reposes

    Cordialement,

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    C'est surtout, je pense, que la question n'est pas claire, à mon avis.

    Tu nous demandes si on peut ajouter une processing instruction indiquant une feuille de style XSL dans un document XML. Tu nous dis que tu génères le code XML en Java, mais que bien sûr il ne contient pas déjà l'instruction.

    Comment ça bien sûr ? Si tu génères le XML toi-même, il suffit de mettre tout ce qu'on a besoin d'y mettre au moment où on le fait. Quel est le problème ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Désolé si c'était pas clair

    Par exemple disons que je genere un fichier XML comme celui la mais sans la ligne en rouge:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
    <catalog>
      <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
      </cd>
    .
    .
    </catalog>
    J'ai voulu savoir est-ce que je peux rajouter cette ligne pour referencer la feuille XSL qui va etre utilisee avec ce fichier XML depuis le code java car vu que je viens de debuter en java en general donc j'ai pas trop d'info a ce sujet ^^

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    Eh bien, euh, oui, tu peux.

    Les balises en <?instruction truc="bidule"?> sont ce qu'on appelle des processing instructions. Il te reste à regarder ton API de création de XML pour voir comment insérer des processing instructions.

    Dans le cas qui t'intéresse, tu dois utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String target = "xml-stylesheet";
    String data = "type=\"text/xsl\" href=\"cdcatalog.xsl\"";
    Par exemple, en supposant que tu utilises une API Java DOM compatible org.w3c.dom et que tu aies un org.w3c.dom.Document "document" qui contient déjà ton document sans la processing instruction, voilà comment l'ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // construire la processing instruction
    String target = "xml-stylesheet";
    String data = "type=\"text/xsl\" href=\"cdcatalog.xsl\"";
    ProcessingInstruction instruction =
      document.createProcessingInstruction(target, data);
    // Insérer l'instruction avant l'élément racine du document.
    document.insertBefore(instruction, document.getDocumentElement());
    (à noter que la déclaration XML au début, <?xml version="1.0"?>, n'est pas une processing instruction et ne se gère pas comme ça)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup ca a marche. En fait je ne savais meme pas comment ca s appelle donc je pouvais meme pas chercher sur google ^^. Un truc de plus appris grace a vous

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut comment lire les processing instruction?
    D'abord merci, puisque tu as résolu pour moitié ce que j'ai à faire.

    J'ai quasiment la même chose à faire, si ce n'est que je dois récupérer la processing instruction d'un xml pour la coller dans un autre.

    J'ai pas vu d'api avec dom permettant de récupérer ça. Une idée?

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    Moi ce que je fais, j'itère sur tous les childNodes du nœud qui contient la processing instruction, jusqu'à ce que je tombe sur un nœud dont le nodeType est PROCESSING_INSTRUCTION_NODE.

    Pas très pratique mais bon. Si ton API XML gère la sélection par XPath, on peut récupérer une processing instruction avec. Dans l'exemple précédent, le XPath serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /processing-instruction('xml-stylesheet')
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut ceci marche chez moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String data = "";
     
    		try {
    			data = (String)XPathFactory.newInstance().newXPath().compile("/processing-instruction('xml-stylesheet')").evaluate(sysParam,XPathConstants.STRING);
    		} catch (XPathExpressionException e) {
    			e.printStackTrace();
    		}
    Voila, merci beaucoup. Désolé d'avoir laiisé refroidir, j'étais occupé.

    Par contre pour parcourir les noeuds je n'y arrive pas, le premier élément auquel j'ai accès c'est ceux après les processing instruction.

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    Pas de problème pour le temps passé, je surveille pas les discussions où il n'y a pas de nouveau message, tu sais .

    Citation Envoyé par prehistoric Voir le message
    Par contre pour parcourir les noeuds je n'y arrive pas, le premier élément auquel j'ai accès c'est ceux après les processing instruction.
    Normal avec xml-stylesheet.

    Il faut savoir que le document est aussi un nœud, et qu'il peut avoir d'autres fils que l'élément racine : des processing instruction, justement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Débutant] Ajouter un nouvel élément dans une liste à partir d'un formulaire
    Par pliza dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 27/08/2014, 18h05
  2. [DOM] Ajout d'un noeud dans XML
    Par alliance dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 18/06/2009, 11h37
  3. Réponses: 2
    Dernier message: 08/03/2007, 11h06
  4. Enregistrer des données dans une table à partir du code
    Par Ragnarok85 dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2007, 13h03
  5. Réponses: 2
    Dernier message: 11/01/2007, 12h00

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