Introduction
This editor helps to test the XSL transformations. It is very useful if you are developing XSLT for your web project and want to test before publishing into the web server. You can also check the XSLT syntax errors and the output of the transformation using this editor.
Background
In my recent assignment, I got a chance to work on XSLT. When I was developing XSLT files, I found MSXML.dll does not support all the functions available in the current XSLT/XPath version. So I made this little tool to test the XSLT output and syntax errors.
Using the Code
Dim sResult As New System.IO.StringWriter
xmlDoc.LoadXml(rtxtXML.Text)
xslDoc.LoadXml(rtxtXSL.Text)
Dim xslTransform As New System.Xml.Xsl.XslTransform
Dim evidence As System.Security.Policy.Evidence = _
XmlSecureResolver.CreateEvidenceForUrl("http://localhost/")
evidence.AddAssembly(Me.GetType().Assembly)
xslTransform.Load(xslDoc, New Xml.XmlUrlResolver, evidence)
xslTransform.Transform(xmlDoc, Nothing, sResult, Nothing)
rtxtResult.Text = sResult.GetStringBuilder().ToString()
tbctlMain.SelectedIndex = 2
Trace("Transformation compleated....")
How to Use
- Copy the XML data in the XML tab or open an existing XML file from the File menu.
Sample XML:
='1.0'
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
- Copy the XSL script in the XSL tab or open an existing XSL file from the File menu.
Sample XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="bookstore">
<!-- Prices and books -->
<bookstore>
<xsl:apply-templates select="book"/>
</bookstore>
</xsl:template>
<xsl:template match="book">
<book>
<xsl:attribute name="ISBN">
<xsl:value-of select="@ISBN"/>
</xsl:attribute>
<price><xsl:value-of select="price"/></price><xsl:text>
</xsl:text>
</book>
</xsl:template>
</xsl:stylesheet>
- Click on the Transform menu item to test the transformation. If the the XSLT is good, then you should see the output on the Result tab.
History