Right ok, I think I have a good idea as to what the problem is. I have saved the file before I have applied the XSLT (duh!lol) but also I am not sure the fileupload box is the best way to go about this. I think this because I cannot think of a way to transform the XML before it is saved? Any ideas ?
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
using System.IO;
namespace runXslt { }
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
// Specify the path on the server to
// save the uploaded file to.
String savePath = "C:/temp/";
// Get the name of the file to upload.
String fileName = FileUpload1.FileName;
// Get the extension of the uploaded file.
string extension = System.IO.Path.GetExtension(fileName);
// Before attempting to perform operations
// on the file, verify that the FileUpload
// control contains a file.
if (FileUpload1.HasFile)
{
if ((extension == ".xml"))
{
// Append the name of the file to upload to the path.
savePath += fileName;
// Call the SaveAs method to save the
// uploaded file to the specified path.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);
// Notify the user of the name of the newly saved file
Label1.Text = "SUCCESS! - Your file was uploaded and converted as " + fileName;
//call XSLT transform
ApplyXSLTransformation();
}
else
{
// Notify the user why their file was not uploaded.
Label1.Text = "ERROR - Your file was not uploaded or converted because " +
fileName + "it does not have a .xml extension.";
}
}
else
{
// Notify the user that a file was not uploaded.
Label1.Text = "ERROR - You did not specify a file to upload.";
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
}
private string ApplyXSLTransformation()
{
string strHtml;
string strXstFile = Server.MapPath("test.xslt");
XslCompiledTransform x = new XslCompiledTransform();
// Load the XML - use (Server.MapPath("/temp/" + FileUpload1.FileName));
//if using server i.e. not local machine
XPathDocument doc = new XPathDocument(("C:/temp/" + FileUpload1.FileName));
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(strXstFile);
MemoryStream ms = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(ms, null);
StreamReader rd = new StreamReader(ms);
xslt.Transform(doc, writer);
ms.Position = 0;
strHtml = rd.ReadToEnd();
rd.Close();
ms.Close();
Server.Transfer(Server.MapPath("C:/temp/dl" + FileUpload1.FileName));
return strHtml;
}
} If you have a quality, be proud of it and let it define you. Add it to the world!
If you got your answer, please mark the thread as Solved. It saves time when people are looking to contribute threads or for answers!