Xml,xsl et webbrowser

Résolu
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 - 11 juil. 2010 à 19:23
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 - 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!!

4 réponses

cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
12 juil. 2010 à 11:11
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.
3
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
11 juil. 2010 à 21:39
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
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
12 juil. 2010 à 00:29
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!!!
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
12 juil. 2010 à 11:50
ICONIC FIGURE

Merci!!
j'avais pas fait attention à l'instruction:
 Dim writer As XmlWriter = XmlWriter.Create(fileHtml, settings)
0
Rejoignez-nous