XslTransform::Load Method (String^)
Loads the XSLT style sheet specified by a URL.
Assembly: System.Xml (in System.Xml.dll)
Parameters
- url
-
Type:
System::String^
The URL that specifies the XSLT style sheet to load.
| Exception | Condition |
|---|---|
| XsltCompileException | The loaded resource is not a valid style sheet. |
| SecurityException | The style sheet contains embedded script, and the caller does not have UnmanagedCode permission. |
Note |
|---|
The XslTransform class is obsolete in the .NET Framework version 2.0. The XslCompiledTransform class is the new XSLT processor. For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class. |
XslTransform supports the XSLT 1.0 syntax. The XSLT style sheet must include the namespace declaration xmlns:xsl=http://www.w3.org/1999/XSL/Transform.
This method loads the XSLT style sheet, including any style sheets referenced in xsl:include and xsl:import elements. External resources are resolved using an XmlUrlResolver with no user credentials. If the style sheet(s) are located on a network resource which requires authentication, use the overload that takes an XmlResolver as one of its arguments and specify an XmlResolver with the necessary credentials.
If the style sheet contains embedded scripting, the script is compiled to an assembly. The URI of the style sheet is used to create evidence, which is applied to the assembly. For issues with the Load method and style sheets with embedded scripts, see article Q316755 in the Microsoft Knowledge Base at http://support.microsoft.com.
Note |
|---|
If the caller does not have UnmanagedCode permission, the embedded script is not compiled and a SecurityException is thrown. See SecurityPermission and SecurityPermissionFlag::UnmanagedCode for more information. |
The following example transforms an XML document into an HTML document. It displays the ISBN, title, and price for each book in a table.
#using <System.dll> #using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Xsl; using namespace System::Xml::XPath; int main() { String^ filename = "books.xml"; String^ stylesheet = "output.xsl"; //Load the stylesheet. XslTransform^ xslt = gcnew XslTransform; xslt->Load( stylesheet ); //Load the file to transform. XPathDocument^ doc = gcnew XPathDocument( filename ); //Create an XmlTextWriter which outputs to the console. XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out ); //Transform the file and send the output to the console. xslt->Transform(doc,nullptr,writer,nullptr); writer->Close(); }
The sample uses the following two input files.
books.xml
<?xml version='1.0'?> <!-- This file represents a fragment of a book store inventory database --> <bookstore> <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0"> <title>The Autobiography of Benjamin Franklin</title> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> <price>8.99</price> </book> <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2"> <title>The Confidence Man</title> <author> <first-name>Herman</first-name> <last-name>Melville</last-name> </author> <price>11.99</price> </book> <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6"> <title>The Gorgias</title> <author> <name>Plato</name> </author> <price>9.99</price> </book> </bookstore>
output.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="bookstore"> <HTML> <BODY> <TABLE BORDER="2"> <TR> <TD>ISBN</TD> <TD>Title</TD> <TD>Price</TD> </TR> <xsl:apply-templates select="book"/> </TABLE> </BODY> </HTML> </xsl:template> <xsl:template match="book"> <TR> <TD><xsl:value-of select="@ISBN"/></TD> <TD><xsl:value-of select="title"/></TD> <TD><xsl:value-of select="price"/></TD> </TR> </xsl:template> </xsl:stylesheet>
Available since 1.1
