Hello ,
For basic learning purpose, I'm trying to do a simple transformation, so that
next Saturday I can buy MK's
books, and then get down to the business of using XSL2/XPath with C# (Hoping to
move on from VB & MSXML.).
First it does not compile.
Error message 'ikvm.lang.ByteArrayHack' is obsolete
Note: Before starting I installed J2SE 5.0 Update 2(jdk1.5.0_02)
Is this to up-todate??
If I comment this out, it compiles. Stepping through the code gives error
Exception Details: javax.xml.transform.TransformerConfigurationException:
Failed to parse stylesheet
An example of a working transformation would help.
--
Best regards,
Arthur
For completeness my Code is below
(from example provided by Saxon.NET-ASP.NET-Sample)
<?xml version="1.0" encoding="utf-8" ?>
<saxondotnet_sample>
<message>Hello ASP.NET!</message>
</saxondotnet_sample>
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates select="saxondotnet_sample/message"/>
</xsl:template>
<xsl:template match="message">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
In the bin Directory
Compile.exe
IKVM.GNU.Classpath.dll
IKVM.Runtime.dll
Query.exe
Saxon.NET.dll
Transform.exe
/*************************************************/
/****** BEGIN Page Class ********/
/*************************************************/
using System.Collections.Specialized;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
using System.Web.Caching;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web;
using System.Xml.Xsl;
using System.Xml;
using System;
//Saxon.Net
using javax.xml.transform;
using javax.xml.transform.stream;
using net.sf.saxon;
namespace SaxonNet
{
// Class for web page pgeSecond.aspx
public class pgeSecond : Page
{
// Declare controls on the HTML page.
protected Button btn;
// default constructor
public pgeSecond()
{
Page.Init += new System.EventHandler(Page_Init);
}
private void Page_Init(object source, EventArgs e)
{
InitializeComponent();
}
private void InitializeComponent()
{
// wire up the event handlers
this.btn.Click += new EventHandler( this.btn_Click ) ;
this.Load += new EventHandler(this.Page_Load);
} // InitializeComponent
private void Page_Load(object source, EventArgs e)
{
if (! IsPostBack)
{
// code goes here
}
} // Page_Load
private void btn_Click(object source, EventArgs e)
{
string xmlSource = "index.xml";
string xslSource = "index.xslt";
string transform;
// instantate new class object
Xsl xsl=new Xsl();
transform = xsl.Transform(Server.MapPath(xmlSource),
Server.MapPath(xslSource));
}
} // end of pgeSecond
public class Xsl
{
private string strCrLf = "\r\n";
// constructor
public Xsl(){}
public string Transform(string inXML, string inXSL)
{
StreamSource inputXml_Source = new StreamSource(new
java.io.FileInputStream(inXML));
inputXml_Source.setSystemId(inXML);
StreamSource inputXsl_Source = new StreamSource(new
java.io.FileInputStream(inXSL));
inputXsl_Source.setSystemId(inXSL);
return DoTransform(inputXml_Source, inputXsl_Source);
}
private string DoTransform(StreamSource Xml, StreamSource Xsl)
{
java.lang.System.setProperty("javax.xml.transform.TransformerFactory",
"net.sf.saxon.TransformerFactoryImpl");
StreamResult outResult = new StreamResult();
java.io.ByteArrayOutputStream outputXmlResult = new
java.io.ByteArrayOutputStream();
outResult.setOutputStream(outputXmlResult);
TransformerFactory trans = TransformerFactory.newInstance();
Transformer transformer = trans.newTransformer(Xsl);
transformer.setParameter("dir", "output");
transformer.transform(Xml, outResult);
string strFinal =
System.Text.UTF8Encoding.UTF8.GetString(ikvm.lang.ByteArrayHack.cast(outputXmlResult.toByteArray()));
return strFinal += strCrLf;
}
} // end Xsl
} // end of namespace
/*************************************************/
/****** END Page Class ********/
/*************************************************/
/*************************************************/
/****** BEGIN HTML Page ********/
/*************************************************/
<%@ page inherits="SaxonNet.pgeSecond" src="second.aspx.cs"
AutoEventWireup="false" debug="true" %>
<html>
<head>
<title></title>
</head>
<body>
<form id="frmMain" runat="server" method="post">
<asp:Button id="btn" runat="server"
text="Test"/>
</form>
</body>
</html>
/*************************************************/
/****** END HTML Page ********/
/*************************************************/
--
Best regards,
Arthur mailto:ArthurM(_at_)seipas(_dot_)com
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--