Xml,xsl et webbrowser [Résolu]

NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 11 juil. 2010 à 19:23 - Dernière réponse : NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention
- 12 juil. 2010 à 11:50
]

Bonsoir!!
j'ai un fichier xml et un fichier de style(xsl)...
j'aimerai pouvoir afficher mon fichier essai.xml auquel j'aurai appliqué la feuille de style essai.xsl sur le webbrowser.
si proposition,aide ou code il y a,alors je suis tout ouïe...
Merci d'avance!!
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention - 12 juil. 2010 à 11:11
3
Merci
Bonjour,
avec ce code on affiche le fichier html sur le WebBrowser nommé WebBrowser1 :
'*** Définir le chemin des fichiers XML, XSL et celui recueillant le résultat de la transformation : HTML.
    '    Ici le répertoire de l'exe.
    Dim pathExe As String =  My.Application.Info.DirectoryPath & ""
    Private fileXml As String = pathExe & "essai.xml"
    Private stylesheet As String = pathExe & "essai.xsl"
    Private fileHtml As String = pathExe & "essai.html"

    Private Sub AffichePage()

        ' Load the style sheet.
        Dim xslt As New XslCompiledTransform()
        xslt.Load(stylesheet)
        ' Create the writer.
        Dim settings As New XmlWriterSettings()
        settings.Encoding = System.Text.Encoding.GetEncoding(28591)
        settings.CheckCharacters = True
        settings.Indent = True
        settings.IndentChars = "    "
        Dim writer As XmlWriter = XmlWriter.Create(fileHtml, settings)

        'Write the DocumentType node.
        writer.WriteDocType("html", "-//W3C//DTD XHTML 1.0 Strict//EN", _
             "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd", Nothing)

        ' Execute the transformation.
        xslt.Transform(fileXml, writer)
        writer.Close()
        WebBrowser1.Url = New Uri(pathExe & fileHtml)
    End Sub

Ce code fonctionne bien chez moi en vb 2008.
Par contre j'ai modifié le code xsl comme suit :
<?xml version="1.0" encoding="ISO-8859-1" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" version="html4.01" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd"/>

  <xsl:template match="agenda">
    <html>
      <head>
        <title>Agenda de la semaine</title>
      </head>
      
        Horaire de la semaine

        <xsl:for-each select="jours">
          
            <li>
              
                Jour : <xsl:text> </xsl:text>
              
              <xsl:value-of select="@nomjour"/>
              <!--</li>-->
              <!-- Choisir le traitenent selon le noeud-->
              <xsl:value-of select="activite"/>
            </li>

            <xsl:choose>
              <xsl:when test="activite/@nomactivite='RDV'">
                <li>
                   Activité : &#160; <xsl:value-of select ="activite/@nomactivite"/>
                </li>
                <li>
                  Heure Début:&#160;<xsl:value-of select= "activite/heure/heuredebut"/>
                </li>
                <li>
                   Heure Fin : &#160;<xsl:value-of select ="activite/heure/heurefin"/>
                </li>
                <li>
                  Commentaire :&#160;<xsl:value-of select="activite/commentaire"/>
                </li>
              </xsl:when>
            </xsl:choose>

            <!--utilisation d'un apply-template match pour au moins un des noeuds-->
          
        </xsl:for-each>
        <!--<xsl:value-of select="//procedure"/>

-->
      
    </html>
  </xsl:template>
</xsl:stylesheet>

NB : le fichier html se créé automatiquement par programmation, il n'y a pas à faire de manipulations autres.

Merci cs_christoni 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_christoni
cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention - 11 juil. 2010 à 21:39
0
Merci
Bonsoir,
la routine pour afficher le XML devrait ressembler à ça :
    '*** Définir le chemin des fichiers XML, XSL et celui recueillant le résultat de la transformation : HTML.
    '    Ici le répertoire de l'exe.
    Dim pathExe As String = My.Application.Info.DirectoryPath & ""
    Private fileXml As String = pathExe & "ZZTest.xml"
    Private stylesheet As String = pathExe & "ZZTest.xsl"
    Private fileHtml As String = pathExe & "ZZTest1.html"

    Private Sub AffichePage()

        ' Load the style sheet.
        Dim xslt As New XslCompiledTransform()
        xslt.Load(stylesheet)
        ' Create the writer.
        Dim settings As New XmlWriterSettings()
        settings.Encoding = System.Text.Encoding.GetEncoding(28591)
        settings.CheckCharacters = True
        settings.Indent = True
        settings.IndentChars = "    "
        Dim writer As XmlWriter = XmlWriter.Create(fileHtml, settings)

        'Write the DocumentType node.
        writer.WriteDocType("html", "-//W3C//DTD XHTML 1.0 Strict//EN", _
             "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd", Nothing)

        ' Execute the transformation.
        xslt.Transform(fileXml, writer)
        writer.Close()
        WebBrowser1.Url = New Uri(pathExe & "ZZTest1.html") '(html)
    End Sub
Commenter la réponse de cs_christoni
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 12 juil. 2010 à 00:29
0
Merci
ICONIC FIGURE

j'ai essayé le code mais je n'ai rien qui s'affiche sur mon webbrowser,
je suis un peu novice sur la combinaison xml,xsl et html...je suis capable d'appliquer la feuille de style xsl sur le fichier xml et de le visualiser à partir de XML Editor alors comment je fais pour ajouter la feuille de style xsl et le fichier xml au fichier html?
En bref,quelle sera la structure de mon document html si le fichier xml ressemble à:
<?xml version= "1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="TP02.xsl"?>

<jours nomjour="Lundi">

<heure>
<heuredebut>9:00</heuredebut>
<heurefin>12:00</heurefin>
</heure>
<commentaire>un meeting avec le directeur generale</commentaire>

</jours>
<jours nomjour="Mardi">

<heure>
<heuredebut>10:00</heuredebut>
<heurefin>12:00</heurefin>
</heure>
<commentaire>un réunion avec le conseil d'administration </commentaire>

</jours>
<jours nomjour="Mercredi">

<heure>
<heuredebut>08:00</heuredebut>
<heurefin>10:00</heurefin>
</heure>
<commentaire>un réunion d'evaluation de projet </commentaire>

</jours>
<jours nomjour="Jeudi">

 tres important


<commentaire>voir le banquier </commentaire>
 important


<commentaire>ramener les enfants </commentaire>
 moins important


<commentaire>regarder la TV </commentaire>

</jours>
<jours nomjour="Vendredi">

<heure>
<heuredebut>14:00</heuredebut>
<heurefin>18:00</heurefin>
</heure>
<commentaire>voir mon medecin </commentaire>

</jours>
<jours nomjour="Samedi">

 tres important


<commentaire>faire l'epecerie </commentaire>
 important


<commentaire> magasinage </commentaire>
 moins important


<commentaire>tender la pelouse </commentaire>

</jours>
<jours nomjour="Dimanche">

<commentaire>Acheter un cadeau </commentaire>

</jours>
 


et la feuille de style xsl à:
<?xml version="1.0" encoding="ISO-8859-1" ?><!-- DWXMLSource="es.xml" -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="html4.01" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd"/>

<xsl:template match="agenda">
<html>
<head>
<title>Agenda de la semaine</title>
</head>

Horaire de la semaine

<xsl:for-each select="jours">

<li> Jour : 
<xsl:value-of select ="@nomjour"/></li>
<!-- Choisir le traitenent selon le noeud-->
<xsl:value-of select= "./activite"/>

<xsl:choose>
<xsl:when test="./@nomactivite='RDV'">
<li> Activité : <xsl:value-of select ="./@nomactivite"/></li>
<li>Heure Début:<xsl:value-of select= "./heuredebut"/></li>
<li> Heure Fin : <xsl:value-of select ="./heurefin"/></li>
<li>Commentaire :<xsl:value-of select="./commentaire"/></li>
</xsl:when>
</xsl:choose>

<!--utilisation d'un apply-template match pour au moins un des noeuds-->

</xsl:for-each>
<!--<xsl:value-of select="//procedure"/>

-->

</html>
</xsl:template>
</xsl:stylesheet> 

Merci d'avance!!!
Commenter la réponse de NSUADI
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 12 juil. 2010 à 11:50
0
Merci
ICONIC FIGURE

Merci!!
j'avais pas fait attention à l'instruction:
 Dim writer As XmlWriter = XmlWriter.Create(fileHtml, settings)
Commenter la réponse de NSUADI

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.