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, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access