Library tutorials & articles
Reading, Storing and Transforming XML Data in .NET
How it Works
string strConnect = "server=(local);uid=sa;pwd=;database=pubs;";
SqlConnection objConnect = new SqlConnection(strConnect);
SqlDataAdapter objCommand = new SqlDataAdapter("SELECT * FROM authors order
by au_lname asc", objConnect);
objConnect.Open();
DataSet objDS = new DataSet();
To digress for a moment, there are other methods for retrieving XML data from
a database. SQL Server 2000 offers direct XML output, which can be used with
Net's ExecuteXMLReader method. This sets up the XMLReader object
that views the XML returned from SQL Server. At any rate, in this article we
stick to getting XML from any database as typical data.
Moving on, we next setup the means of writing our results as XML. But before
we do this we use the objDS.DataSetName method to set the name
of our DataSet which it turn will be our XML document's parent node. You'll
notice I've added some conditional file checking for our not yet created XML
file. I simply have done this because I want to also show the ability of writing
XML to a file as well as checking for one and reading an already existing one
as well, thus:
if (!File.Exists(Server.MapPath("pubs.xml"))) {
and if not we write a new one directly to disk with the DataSet's WriteXML method.
objDS.WriteXml(Server.MapPath("pubs.xml"), XmlWriteMode.IgnoreSchema);
The XMLWriteMode.IgnoreSchema is telling the WriteXML method that
no schema is to be written, since the XML structure isn't that constant over
time, new schemas are generated each time automatically.
We then proceed to read it and transform it. The XMLDocument method below loads the XML file and holds it in memory. The XSL Transform method then retrieves your XSL Stylesheet and transforms the XML data into readable HTML.
XmlDocument XMLdoc = new XmlDocument();
XMLdoc.Load(Server.MapPath("pubs.xml"));
XslTransform XMLtrans = new XslTransform();
XMLtrans.Load(Server.MapPath("pubs.xsl"));
This will all become apparent as soon as the XML Web control's properties are assigned. The XML Web control's Document property sets up the XML document and the Transform property formats it using the specified XSL stylesheet, and out it goes.
xmloutput.Document = XMLdoc;
xmloutput.Transform = XMLtrans;
<asp:xml id="xmloutput" runat="server" />
Now isn't that too cool!
Related articles
Related discussion
-
handling special character in xslt's
by bussureddy82 (1 replies)
-
Reading an RSS file in ASP .NET
by TimL (31 replies)
-
Create a Site Search Engine in ASP.NET
by Soundguy53 (64 replies)
-
Cross page postbacks in ASP.NET 2.0
by PhilWhite (9 replies)
-
virtual directory asp.net
by yogeshkadvekar (3 replies)
Related podcasts
-
Writing FaceBook Applications with .NET - Interview with Mel Sampat, author of Outsync
In this episode, Scott talks with Mel Sampat, a Program Manager at Microsoft who's written OutSync, an application that syncs faces between Outlook, Facebook, and indirectly Windows SmartPhones. They chat about what it takes to write your own FaceBook application using ASP.NET or WinForms.
Events coming up
-
Mar
15
DevWeek 2010
London, United Kingdom
DevWeek is Europe’s leading independent conference for software developers, database professionals and IT architects, and features expert speakers on a wide range of topics, including .NET 4.0, Silverlight 3, WCF 4, Visual Studio 2010, REST, Windows Workflow 4, Thread Synchronization, ASP.NET 4.0, SQL Server 2008 R2, LINQ, Unit Testing, CLR & C# 4.0, .NET Patterns, WPF 4, F#, Windows Azure, ADO.NET, Entity Framework, Debugging, T-SQL Tips & Tricks, and more.
Hey Kurt,
The xsl file is the xml transformation file which parses the xml into more readable html.
i might be very slow here, but what part of the code here are supposed to be used in the pubs.xsl file? yes, I am a newbie :-)
Regards,
Kurt
Norway
Thanks - I'll check that and edit the article to fix it
Very good example, simple but contains a lot of information. Only one part I had to modify, in the XSL I had to change the criteria for the select from "PubsList/Pubs" to "PubsList/Table" as the child node is table and not pubs. I also had to grant write access to ASPNET account for the folder where I'm creating the XML.
Thanks,
Reem
This thread is for discussions of Reading, Storing and Transforming XML Data in .NET.