Reading Data Into a DOM Tree
There’s another way to
read XML directly from a database. The
XmlDataDocument
, which extends
XmlDocument
, presents the contents of a
DataSet
as an XML document. At that point, the
data can be treated just like any other
XmlDocument
, including navigating to specific
nodes with XPath, writing it to any sort of
Stream
, transforming it with XSLT, and in fact any
of the other techniques I’ve shown you in this book.
Example 11-11 shows a program that executes the same
query from example 11-10 and writes the resulting XML to the console.
using System; using System.Data; using System.Data.SqlClient; using System.Xml; public class ReadDataAsXml { public static void Main(string [ ] args) { DataSet dataSet = new DataSet("AngusHardware"); SqlConnection connection = new SqlConnection( "Initial Catalog=AngusHardware; User ID=sa"); string command = "SELECT name, redemption_date, total_discount " + "FROM coupon_redemptions a, customers b " + "WHERE a.customer_id = b.customer_id"; SqlDataAdapter adapter = new SqlDataAdapter(command, connection); adapter.Fill(dataSet, "CouponsRedeemed"); XmlDataDocument doc = new XmlDataDocument(dataSet); XmlTextWriter writer = new XmlTextWriter(Console.Out); writer.Formatting = Formatting.Indented; doc.WriteTo(writer); } }
You’ve seen most of this before, but
here’s a quick look at some of the more important
steps. First, you create the DataSet
, the
SqlConnection
, a SQL select command, ...
Get .NET & XML now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.