Transforming an XML Document
Example 7-5 shows one of the simplest possible XSLT-related programs in C#. Given a source filename, a stylesheet filename, and a destination filename, it transforms the source into the destination using the stylesheet. It will work with any XML source file and any XSLT stylesheet.
using System.Xml.Xsl;
public class Transform {
public static void Main(string [ ] args) {
string source = args[0];
string stylesheet = args[1];
string destination = args[2];
XslTransform transform = new XslTransform( );
transform.Load(stylesheet);
transform.Transform(source, destination);
}
}
I
won’t explain in excruciating detail how this
program works, but I will point out a few important facts about the
XslTransform type. It only has one property,
XmlResolver, and two methods, Load(
) and Transform( ), but it is still one
of the most versatile pitchers in the .NET XML bullpen.
First, the Load( )
method has eight overloads. All of them load the specified XSLT
stylesheet, but each of them takes the stylesheet in a different
parameter type. The stylesheet may be specified as an
IXPathNavigable (such as
XmlDocument), URL, XmlReader,
or XPathNavigator; together, these types cover
every possible way to read an XML document. For each Load(
) method that takes one of these parameters, there is
another one taking an XmlResolver as the second
parameter. This XmlResolver is used to resolve any stylesheets referenced in ...