XslCompiledTransform::Transform Method (String^, XsltArgumentList^, XmlWriter^)
Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter. The XsltArgumentList provides additional run-time arguments.
Assembly: System.Xml (in System.Xml.dll)
public: void Transform( String^ inputUri, XsltArgumentList^ arguments, XmlWriter^ results )
Parameters
- inputUri
-
Type:
System::String^
The URI of the input document.
- arguments
-
Type:
System.Xml.Xsl::XsltArgumentList^
An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. This value can be null.
- results
-
Type:
System.Xml::XmlWriter^
The XmlWriter to which you want to output.
If the style sheet contains an xsl:output element, you should create the XmlWriter using the XmlWriterSettings object returned from the OutputSettings property. This ensures that the XmlWriter has the correct output settings.
| Exception | Condition |
|---|---|
| ArgumentNullException | The inputUri or results value is null. |
| XsltException | There was an error executing the XSLT transform. |
| DirectoryNotFoundException | The inputtUri value includes a filename or directory cannot be found. |
| WebException | The inputUri value cannot be resolved. -or- An error occurred while processing the request. |
| UriFormatException | inputUri is not a valid URI. |
| XmlException | There was a parsing error loading the input document. |
This method uses a default XmlUrlResolver with no user credentials to resolve the input document and any instances of the XSLT document() function found in the style sheet. If any of these resources are located on a network resource that requires authentication, use the overload that takes an XmlResolver as one of its arguments and specify an XmlResolver with the necessary credentials.
An XmlReader with default settings is used to load the input document. DTD processing is disabled on the XmlReader. If you require DTD processing, create an XmlReader with this feature enabled, and pass it to the Transform method.
The following example uses an XsltArgumentList object to create a parameter representing the current date and time.
The example uses the following two data files as input.
order.xml
<!--Represents a customer order--> <order> <book ISBN='10-861003-324'> <title>The Handmaid's Tale</title> <price>19.95</price> </book> <cd ISBN='2-3631-4'> <title>Americana</title> <price>16.95</price> </cd> </order>
order.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="date"/> <xsl:template match="/"> <order> <date><xsl:value-of select="$date"/></date> <total><xsl:value-of select="sum(//price)"/></total> </order> </xsl:template> </xsl:stylesheet>
Available since 2.0