We need you!

We're working hard on the next version of Developer Fusion. Let us know what you think we should be up to!

Members

Technology Zones

Articles

Hosted By

MaximumASP

Info

Rated
Read 31,323 times

Contents

Related Categories

XML transformations in .NET - Part I - Presenting the data

JLogic

Presenting the data

Rendering this raw data on a webpages requires an XSLT template that converts or transforms the xml into HTML. Below is a sample xsl that will process the “computers.xml” file.

computers.xsl

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="computers">
<h2>Computer Shopper</h2>

<b>Computyer Type:</b> <xsl:value-of select="computer/@type"/><br/>
<b>PC Specs:</b> <br/>
<b>CPU:</b> <xsl:value-of select="computer/processor"/><br/>
<b>Ram:</b> <xsl:value-of select="computer/ram"/><br/>
<p />

<b>Price: </b> <xsl:value-ofselect="computer/price/@currencySymbol"/>
<xsl:value-of select="computer/price"/>
</xsl:template>
</xsl:stylesheet>

Here are the results of the transformation:

.NET Transformation Objects:

So how do you tell an XSL to process an xml file for transformation? There are a few ways. This article focuses on the built in .NET Transformer class. First familiarize yourself with the Code-behind below:

Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected WithEvents ltl_htmlResults As System.Web.UI.WebControls.Literal

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim XMLDoc As XPathDocument
        Dim XSLTDoc As XslTransform
        'Prepare StringWriter for results
        Dim sw As StringWriter = New StringWriter()
        'Load xml file into XMLDoc
        XMLDoc = New XPathDocument(Server.MapPath("computers.xml"))
        'Load XSL
        XSLTDoc = New XslTransform()
        XSLTDoc.Load(Server.MapPath("computers.xsl"))
        'Transform XMLDoc and dump HTML results to stringwriter -> sw
        XSLTDoc.Transform(XMLDoc, Nothing, sw)
        'Pull results out of stringwriter and populate literal
        ltl_htmlResults.Text = sw.ToString()
    End Sub

Comments