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

XML/XSL et SOAP Discussion :

Insertion d'XML dans de l'HTML


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Insertion d'XML dans de l'HTML
    Bonjour à tous,

    je débute en xml et je teste différentes solutions d'insertion dans une page html.

    Aujourd'hui j'essais le xsl mais je butte.

    Je développe un site en javascript, xml et html et ne pourrais pas avoir de langage dynamique.

    J'ai trouvé plusieurs fois le même tuto expliquant que l'on peut en javascript transformer un fichier xml via un fichier xsl et incorporer le résultat dans une page html.

    Le problème c'est qu'en dehors de l'en tête du tableau, rien ne s'affiche, les infos du fichier xml n'apparaissent pas.

    Quelqu'un pourrait-il m'aider ?
    Merci.

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    envoie nous ton xml et xsl afin de voir la transformation que tu fais!

    Et petite précision en passant la sortie n'est pas du HTML mais du XHTML vu que chaque balise ouverte a une balise fermante! Ce qui n'est pas toujours le cas du HTML!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Ok, c'est parti.

    Exemple de ce que peut contenir mon xml :

    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
     
    <!DOCTYPE reglesCSDU SYSTEM "../fichierDTD/reglesCSDU.dtd">
    <reglesCSDU>
     <disciplines nom="VTT">
      <presentation>
       blabla
      </presentation>
      <reglement>
       blabla
      </reglement>
      <csdu>
       <responsabilite titre="Responsable Coordinateur">
        <membre>
         <prenom>
           Prenom
         </prenom>
         <nom>
          Nom
         </nom>
         <adresse>
           Adresse
         </adresse>
         <codepostal>
           codepostal
         </codepostal>
         <commune>
           Commune
         </commune>
         <numfixe>
            0000000000
         </numfixe>
         <courriel>
            toto@wanadoo.fr
         </courriel>
        </membre>
       </responsabilite>
    </csdu>
    </disciplines>
    </reglesCSDU>

    Et maintenant le xsl :


    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <?xml version="1.0" encoding="iso-8859-1"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name = "discipline">VTT</xsl:param>
    	<xsl:template match="/">
    		<div>
    			<xsl:for-each select = "reglesCSDU/disciplines">
    				<xsl:if test="@nom=$discipline">
    					<p>
    						Présentation
    					</p>
    					<p>
    						<xsl:value-of select="presentation" />
    					</p>
    					<p>
    						Règlement
    					</p>
    					<p>
    						<xsl:value-of select="reglement" />
    					</p>
    					<xsl:for-each select = "csdu/responsabilite">
    						<p>
    							<xsl:value-of select = "@titre" />
    						</p>
    						<table>
    							<tr>
    							<xsl:for-each select="membre">
    								<td>
    									<xsl:value-of select="prenom" />
    									<xsl:value-of select="nom" />
    									<br />
    									<xsl:value-of select="adresse" />
    									<br />
    									<xsl:value-of select="codepostal" />
    									<xsl:value-of select="commune" />
    									<xsl:if test="numfixe">
    										<br />
    										<xsl:value-of select="numfixe" />
    									</xsl:if>
    									<xsl:if test="numport">
    										<br />
    										<xsl:value-of select="numport" />
    									</xsl:if>
    									<xsl:if test="numfax">
    										<br />
    										<xsl:value-of select="numfax" />
    									</xsl:if>
    									<xsl:if test="courriel">
    										<br />
    										<a>
    											<xsl:attribute name="href">
    												<xsl:value-of select="courriel" />
    											</xsl:attribute>
    											<xsl:value-of select="courriel" />
    										</a>
    									</xsl:if>
    								</td>
    							</xsl:for-each>
    							</tr>
    						</table>
    					</xsl:for-each>
    					<xsl:if test="autre">
    						<xsl:value-of select="autre/@titre" />
    						<xsl:value-of select="autre" />
    					</xsl:if>
    				</xsl:if>
    			</xsl:for-each> 
    		</div> 
    	</xsl:template> 
    </xsl:stylesheet>

    Avec tous ça je veux faire, en javascript, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var docXML = new ActiveXObject("microsoft.xmldom");
    var FileXSL = new ActiveXObject("Microsoft.xmldom");
     
    docXML.load("../fichierXML/reglesCSDU.xml");
    FileXSL.load("../fichierXSL/reglesCSDU.xsl");
     
    document.getElementById("insert").innerHTML = docXML.transformNode(FileXSL.documentElement);<?xml version="1.0" encoding="iso-8859-1"?>

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    La sortie de ta transformation est :

    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
    <div><p>Présentation</p><p> 
    blabla 
    </p><p>Règlement</p><p> 
    blabla 
    </p><p>Responsable Coordinateur</p><table><tr><td> 
    Prenom 
     
    Nom 
    <br/> 
    Adresse 
    <br/> 
    codepostal 
     
    Commune 
    <br/> 
    0000000000 
    <br/><a href=" &#xA;toto@wanadoo.fr &#xA;"> 
    toto@wanadoo.fr 
    </a></td></tr></table></div>
    Je ne vois déjà pas le but de ton tableau car un tableau a 1 ligne et 1 cologne en plus sans border je n'en vois pas l'utilité!

    pour le reste je ne suis pas un pro de jscript mais pour faire une transfo moi je procède ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var TransformedDOM = new ActiveXObject("MSXML2.DomDocument.5.0");
    TransformedDOM.async = false;
    TransformedDOM.validateOnParse = true;
    TransformedDOM.loadXML( XMLFileDOM.transformNode(XSLTFileDOM));
    ++

    Thierry

    P.S. qu'en tu ajoute du code dans tes mess pense a la balise code! en haut quand tu écris ton message! C'est plus lisible
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    En fait j'ai juste mis un petit bout du xml mais dans celui que j'utilise j'ai plusieurs membres par responsabilite et ça m'arrange de l'afficher ainsi.

    Lorsque j'insère directement le lien vers le xsl dans le xml et que je l'ouvre dans le navigateur, j'obtiens la mise en forme que j'attends.

    Comment fais-tu pour connaitre la sortie de la transformation ?
    Lorsque le xml est ouvert dans le navigateur, si j'affiche la source j'obtiens mon xml.
    Lorsque je fais un alert en javascript pour obtenir la sortie de la transformation j'obtiens juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml version="1.0" encoding="utf-8"><div></div>
    Donc évidemment à l'affichage de ma page je ne vois rien.

    A suivre.....

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Personne d'autre pour m'aider..........

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Eh bien je vais me répondre tous seul.

    J'ai, par hazard, dans mon xml, supprimé la référence à la DTD, c'est à dire la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!DOCTYPE reglesCSDU SYSTEM "../fichierDTD/reglesCSDU.dtd">
    et, oh! miracle, ça fonctionne........
    Par contre je ne comprends pas pourquoi ??????????????????
    Si quelqu'un pouvait m'expliquer.

    Pour mon javascript j'ai mis ça (trouvé sur un site) :

    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
     
    var docXML = new ActiveXObject("Msxml2.DOMDocument");
    docXML.async= false;
     
    var xslt = new ActiveXObject("Msxml2.XSLTemplate");
    var docXSL = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
    docXSL.async = false;
    var xslProc;
     
    docXSL.load("../fichierXSLT/reglesCSDU.xslt");
    xslt.stylesheet = docXSL;
     
    docXML.load("../fichierXML/reglesCSDU.xml");
     
    xslProc = xslt.createProcessor();
    xslProc.input = docXML;
    xslProc.transform();
     
    document.getElementById("insert").innerHTML = xslProc.output;
    Je croyais que la référence à la DTD était obligatoire.
    J'ai même testé avec d'autres fichiers xml et ils s'affichent directement dans le navigateur sans référence à leur DTD.

Discussions similaires

  1. [XML] Insérer du XML dans un fichier HTML
    Par tafkap dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/11/2005, 00h14
  2. Inclure code XML dans une page HTML ?
    Par kpatoulu dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/10/2005, 14h59
  3. Insertion d'XML dans de l'HTML (autre cas)
    Par a028762 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 28/08/2005, 10h13
  4. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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