VB.Net appliquer la transformation XSL pour fichier XML

J'ai eu quelques XML, qui est construit par mon application. Ce XML est tombé à un fichier XML, que j'ai ensuite souhaitent appliquer une feuille de style XSL pour convertir une page HTML. Cependant, à chaque fois, il ne cesse de venir avec le XML d'origine plutôt que de le transformer en HTML

Voici le XML:

<firelist>
  <visitor>
    <Title>Mr</Title>
    <Forename>Gregory</Forename>
    <Surname>House</Surname>
    <Visiting>asasasas</Visiting>
    <VisitTime>11:41</VisitTime>
    <PurposeOfVisit>asasasasa</PurposeOfVisit>
    <BadgeID>a</BadgeID>
    <Campus>KWA</Campus>
    <VisitingFrom>Princeton-Plainsboro Teaching Hospital</VisitingFrom>
    <ImagePath>\\more\DataCard\VisitorPhotos\V0004.jpg</ImagePath>
  </visitor>
</firelist>

Voici la feuille de style :

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

    <xsl:template match="/">
        <html>
            <body>
                <xsl:for-each select="visitor">
                    <xsl:value-of select="title"/>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>

et voici le code qui ne le transformer :

Dim document As XmlDocument     ''# Xml document root
Dim navigator As XPathNavigator ''# navigate document
Dim transformer As XslTransform ''# transform document
Dim output As StringWriter

document = New XmlDocument()
document.Load("firelist.xml")

''# create navigator
navigator = document.CreateNavigator

''# load style sheet
transformer = New XslTransform()
transformer.Load("firelist.xslt")

''# transform XML data
output = New StringWriter()
transformer.Transform(navigator, Nothing, output)

''# display transformation in text box
Console.WriteLine(output.ToString)
''# write transformation result to disk
Dim stream As FileStream = New FileStream("firelist.html", FileMode.Create)

Dim writer As StreamWriter = New StreamWriter(stream)
writer.Write(output.ToString)

''# close streams
writer.Close()
output.Close()

C'est l'âge que j'ai fait n'importe quoi avec XSL et .NET donc je suis sûr que je suis probablement manquer quelque chose d'évident!

Mise à JOUR:
Voici le code tel qu'il est actuellement à la suite de modifications apportées en raison de ci-dessous des suggestions...
Code-Behind:

Dim document As XmlDocument     ' Xml document root
Dim navigator As XPathNavigator ' navigate document
Dim transformer As XslCompiledTransform ' transform document
Dim output As StringWriter

document = New XmlDocument()
document.Load("firelist.xml")

' create navigator
navigator = document.CreateNavigator

' load style sheet
transformer = New XslCompiledTransform()
transformer.Load("firelist.xslt")

' transform XML data
output = New StringWriter()
transformer.Transform(navigator, Nothing, output)

' display transformation in text box
Console.WriteLine(output.ToString)
' write transformation result to disk
Dim stream As FileStream = _
   New FileStream("firelist.html", FileMode.Create)

Dim writer As StreamWriter = New StreamWriter(stream)
writer.Write(output.ToString)

' close streams
writer.Close()
output.Close()

XML:

<?xml version="1.0" encoding="utf-8"?>
<firelist>
  <visitor>
    <Title>Dr</Title>
    <Forename>James</Forename>
    <Surname>Wilson</Surname>
    <Visiting>bob</Visiting>
    <VisitTime>11:30</VisitTime>
    <PurposeOfVisit>dunno</PurposeOfVisit>
    <BadgeID>4</BadgeID>
    <Campus>KWA</Campus>
    <VisitingFrom>Princeton-Plainsboro Teaching Hospital</VisitingFrom>
    <ImagePath>\\more\DataCard\VisitorPhotos\V0005.jpg</ImagePath>
  </visitor>
</firelist>

XSLT:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/firelist">
        <html>
            <body>
                <xsl:for-each select="visitor">
                    <xsl:value-of select="title"/>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>

Je suis encore seulement obtenir l'original XML être sortie de mon fichier HTML, plutôt que le HTML qui devraient résulter de l'XML/XSLT de Transformation.

La zone de texte affiche la bonne? Ou les deux sont mauvais?
Messagebox montre le XML correctement, ça fonctionne bien. C'est après ce point où la transformation xsl, changez le code html qui ne fonctionne pas.

OriginalL'auteur hermiod | 2009-07-27