Learning XPath with XSLT using ASP.NET 2.0 - Setting up your environment: ASP.NET 2.0 code and XSL
(Page 3 of 6 )
In the previous section, we completed setting up the XML schema and XML document. Now it is time to modify our ASP.NET 2.0 code to work with a simple XSL focusing on the XML document provided in the previous section.
Add a new button to your ASP.NET 2.0 project and add the following code to the button click event:
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim XSLTFileName As String = Server.MapPath("EmpDetails01.xsl")
Dim XMLFileName As String = Server.MapPath("EmployeeDetails.xml")
Dim docXML As New XmlDocument
docXML.Load(XMLFileName)
Me.txtXML.Text = docXML.InnerXml
Dim xp As New XPath.XPathDocument(New XmlTextReader(New IO.StringReader(docXML.InnerXml)))
Xml1.XPathNavigator = xp.CreateNavigator
Xml1.TransformSource = XSLTFileName
'----------------------------------------> generating XSLT to show to user
Dim xslt As New Xsl.XslCompiledTransform()
xslt.Load(XSLTFileName)
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = ControlChars.Tab
settings.ConformanceLevel = ConformanceLevel.Auto
Dim sw As New IO.StringWriter
Dim writer As XmlWriter = XmlWriter.Create(sw, settings)
' Execute the transformation.
xslt.Transform(docXML, writer)
writer.Close()
Me.Literal1.Text = "<pre>" & Server.HtmlEncode(sw.ToString) & "</pre>"
sw.Close()
End Sub
The above code not only transforms your XML to XSL, but also displays the transformation to the user. The following is a sample XSL to test with the above ASP.NET 2.0 code:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<b>
<xsl:value-of select="EmployeeDetails/Department/Employee/Ename"/>
</b>
</xsl:template>
</xsl:stylesheet>
Once the above code is executed, your transformation should look something like the following:
<b>Jagadish</b>
If you are able to view the transformation as above, your setup is correct.
Next: Retrieving all values of a particular element at a particular level of hierarchy (or path) >>
More ASP.NET Articles
More By Jagadish Chaterjee