XslCompiledTransform.Transform 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
執行 XSLT 轉換。
多載
備註
Note
在除錯模式下編譯的 XSLT 與在發佈模式下編譯的 XSLT 之間存在差異。 在某些情況下,在除錯模式下編譯的樣式表在 時不會丟出錯誤 Load,但在 時則會失敗 Transform。 同一份樣式表在 Release 模式下編譯時會失敗。Load 此類行為的例子是當一個非節點集合型態的變數被指派到需要節點集合的表達式時。
Transform(XmlReader, XsltArgumentList, TextWriter)
使用物件指定的 XmlReader 輸入文件執行轉換,並將結果輸出為 TextWriter。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As TextWriter)
參數
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- TextWriter
你想輸出的那個 TextWriter 。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
備註
如果樣式表包含 XSLT document() 函式,則會用 不 XmlUrlResolver 需使用者憑證來解析。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
另請參閱
適用於
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
使用物件指定的 IXPathNavigable 輸入文件執行轉換,並將結果輸出為 XmlWriter。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter)
參數
- input
- IXPathNavigable
一個實作介面的 IXPathNavigable 物件。 在Microsoft .NET框架中,這可以是XmlNode(通常是XmlDocument),或是包含待轉換資料的XPathDocument。
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
備註
如果啟用了 XSLT document() 函式,則會用 XmlUrlResolver 沒有使用者憑證的 來解決。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
此方法不支援該 xsl:strip-space 元素。 如果你編譯的樣式表包含了該 xsl:strip-space 元素,你必須使用 Transform 以 作為 XmlReader 輸入參數的超載。
介面IXPathNavigable會在XmlNode和XPathDocument類別中實作。 這些類別代表 XML 資料的記憶體內部快取。
類別 XmlNode 是以 W3C 檔案物件模型 (DOM) 為基礎,並包含編輯功能。
類別 XPathDocument 是以 XPath 數據模型為基礎的唯讀資料存放區。 XPathDocument 是 XSLT 處理的建議類別。 與XmlNode類別相比,它可提供更快的效能。
轉換會套用至整個文件。 換句話說,如果您傳入檔根節點以外的節點,這不會防止轉換程式存取載入檔中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該對象傳遞至 Transform 方法。 如需詳細資訊,請參閱 如何:轉換節點片段。
另請參閱
適用於
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
使用物件指定的 IXPathNavigable 輸入文件執行轉換,並將結果輸出為 TextWriter。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As TextWriter)
參數
- input
- IXPathNavigable
一個實作介面的 IXPathNavigable 物件。 在Microsoft .NET框架中,這可以是XmlNode(通常是XmlDocument),或是包含待轉換資料的XPathDocument。
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- TextWriter
你想輸出的那個 TextWriter 。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
備註
如果啟用了 XSLT document() 函式,則會用 XmlUrlResolver 沒有使用者憑證的 來解決。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
此方法不支援該 xsl:strip-space 元素。 如果你編譯的樣式表包含了該 xsl:strip-space 元素,你必須使用 Transform 以 作為 XmlReader 輸入參數的超載。
介面IXPathNavigable會在XmlNode和XPathDocument類別中實作。 這些類別代表 XML 資料的記憶體內部快取。
類別 XmlNode 是以 W3C 檔案物件模型 (DOM) 為基礎,並包含編輯功能。
類別 XPathDocument 是以 XPath 數據模型為基礎的唯讀資料存放區。 XPathDocument 是 XSLT 處理的建議類別。 與XmlNode類別相比,它可提供更快的效能。
轉換會套用至整個文件。 換句話說,如果您傳入檔根節點以外的節點,這不會防止轉換程式存取載入檔中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該對象傳遞至 Transform 方法。 如需詳細資訊,請參閱 如何:轉換節點片段。
另請參閱
適用於
Transform(IXPathNavigable, XsltArgumentList, Stream)
使用物件指定的 IXPathNavigable 輸入文件執行轉換,並將結果輸出到串流。 它 XsltArgumentList 提供了額外的執行時參數。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As Stream)
參數
- input
- IXPathNavigable
一個實作介面的 IXPathNavigable 物件。 在Microsoft .NET框架中,這可以是XmlNode(通常是XmlDocument),或是包含待轉換資料的XPathDocument。
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- Stream
你想輸出的串流。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
範例
以下範例執行 XSLT 轉換並輸出為 FileStream。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the FileStream.
using (FileStream fs = new FileStream(@"c:\data\output.xml", FileMode.Create))
{
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), null, fs);
}
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the FileStream.
Using fs As New FileStream("c:\data\output.xml", FileMode.Create)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), Nothing, fs)
End Using
備註
如果啟用了 XSLT document() 函式,則會用 XmlUrlResolver 沒有使用者憑證的 來解決。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
此方法不支援該 xsl:strip-space 元素。 如果你編譯的樣式表包含了該 xsl:strip-space 元素,你必須使用 Transform 以 作為 XmlReader 輸入參數的超載。
介面IXPathNavigable會在XmlNode和XPathDocument類別中實作。 這些類別代表 XML 資料的記憶體內部快取。
類別 XmlNode 是以 W3C 檔案物件模型 (DOM) 為基礎,並包含編輯功能。
類別 XPathDocument 是以 XPath 數據模型為基礎的唯讀資料存放區。 XPathDocument 是 XSLT 處理的建議類別。 與XmlNode類別相比,它可提供更快的效能。
轉換會套用至整個文件。 換句話說,如果您傳入檔根節點以外的節點,這不會防止轉換程式存取載入檔中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該對象傳遞至 Transform 方法。 如需詳細資訊,請參閱 如何:轉換節點片段。
另請參閱
適用於
Transform(XmlReader, XsltArgumentList, XmlWriter)
使用物件指定的 XmlReader 輸入文件執行轉換,並將結果輸出為 XmlWriter。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter)
參數
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
備註
如果樣式表包含 XSLT document() 函式,則會用 不 XmlUrlResolver 需使用者憑證來解析。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
另請參閱
適用於
Transform(XmlReader, XsltArgumentList, Stream)
使用物件指定的 XmlReader 輸入文件執行轉換,並將結果輸出到串流。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As Stream)
參數
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- Stream
你想輸出的串流。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
備註
如果樣式表包含 XSLT document() 函式,則會用 不 XmlUrlResolver 需使用者憑證來解析。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
另請參閱
適用於
Transform(String, String)
使用 URI 指定的輸入文件執行轉換,並將結果輸出為檔案。
public:
void Transform(System::String ^ inputUri, System::String ^ resultsFile);
public void Transform(string inputUri, string resultsFile);
member this.Transform : string * string -> unit
Public Sub Transform (inputUri As String, resultsFile As String)
參數
- inputUri
- String
輸入文件的 URI。
- resultsFile
- String
輸出檔案的 URI。
例外狀況
或inputUri值resultsFile為 null。
執行 XSLT 轉換時發生錯誤。
找不到輸入文件。
inputUri
resultsFile或值包含檔名或目錄,找不到。
inputUri 或 resultsFile 不是有效的 URI。
輸入文件載入時出現了解析錯誤。
範例
以下範例執行一個轉換並輸出到檔案。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
範例使用以下兩個輸入檔案:
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>
備註
此方法使用 XmlUrlResolver 預設且無使用者憑證來解析輸入與輸出文件。 如果這些資源中的任何一個位於需要驗證的網路資源上,請使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
會用預設設定來 XmlReader 載入輸入文件。 DTD 處理在 XmlReader. 如果你需要 DTD 處理,請建立啟用此功能的 , XmlReader 然後傳給該 Transform 方法。
另請參閱
適用於
Transform(String, XsltArgumentList, TextWriter)
使用 URI 指定的輸入文件執行轉換,並將結果輸出為 TextWriter。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As TextWriter)
參數
- inputUri
- String
輸入文件的 URI。
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- TextWriter
你想輸出的那個 TextWriter 。
例外狀況
或inputUri值results為 null。
執行 XSLT 轉換時發生錯誤。
inputUri該值包含檔名或找不到目錄。
inputUri 不是有效的 URI。
輸入文件載入時出現了解析錯誤。
範例
以下範例執行 XSLT 轉換並輸出一個字串。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("HTML_out.xsl");
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform("books.xml", null, writer);
HTMLoutput = writer.ToString();
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("HTML_out.xsl")
' Transform the file and output an HTML string.
Dim HTMLoutput As String
Dim writer As New StringWriter()
xslt.Transform("books.xml", Nothing, writer)
HTMLoutput = writer.ToString()
writer.Close()
備註
此方法使用 XmlUrlResolver 預設且無使用者憑證的版本來解析輸入文件及樣式表中任何 XSLT document() 函式的實例。 如果這些資源中的任何一個位於需要驗證的網路資源上,請使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
會用預設設定來 XmlReader 載入輸入文件。 DTD 處理在 XmlReader. 如果你需要 DTD 處理,請建立啟用此功能的 , XmlReader 然後傳給該 Transform 方法。
另請參閱
適用於
Transform(String, XsltArgumentList, Stream)
使用 URI 指定的輸入文件執行轉換,並將結果輸出至串流。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As Stream)
參數
- inputUri
- String
輸入文件的 URI。
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- Stream
你想輸出的串流。
例外狀況
或inputUri值results為 null。
執行 XSLT 轉換時發生錯誤。
inputUri該值包含檔名或找不到目錄。
inputUri 不是有效的 URI。
輸入文件載入時出現了解析錯誤。
備註
此方法使用 XmlUrlResolver 預設且無使用者憑證的版本來解析輸入文件及樣式表中任何 XSLT document() 函式的實例。 如果這些資源中的任何一個位於需要驗證的網路資源上,請使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
會用預設設定來 XmlReader 載入輸入文件。 DTD 處理在 XmlReader. 如果你需要 DTD 處理,請建立啟用此功能的 , XmlReader 然後傳給該 Transform 方法。
另請參閱
適用於
Transform(IXPathNavigable, XmlWriter)
使用物件指定的 IXPathNavigable 輸入文件執行轉換,並將結果輸出為 XmlWriter。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, results As XmlWriter)
參數
- input
- IXPathNavigable
一個實作介面的 IXPathNavigable 物件。 在Microsoft .NET框架中,這可以是XmlNode(通常是XmlDocument),或是包含待轉換資料的XPathDocument。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
範例
以下範例執行 XSLT 轉換並輸出到物件 XmlWriter 。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), writer)
writer.Close()
備註
如果啟用了 XSLT document() 函式,則會用 XmlUrlResolver 沒有使用者憑證的 來解決。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
此方法不支援該 xsl:strip-space 元素。 如果你編譯的樣式表包含了該 xsl:strip-space 元素,你必須使用 Transform 以 作為 XmlReader 輸入參數的超載。
介面IXPathNavigable會在XmlNode和XPathDocument類別中實作。 這些類別代表 XML 資料的記憶體內部快取。
類別 XmlNode 是以 W3C 檔案物件模型 (DOM) 為基礎,並包含編輯功能。
類別 XPathDocument 是以 XPath 數據模型為基礎的唯讀資料存放區。 XPathDocument 是 XSLT 處理的建議類別。 與XmlNode類別相比,它可提供更快的效能。
轉換會套用至整個文件。 換句話說,如果您傳入檔根節點以外的節點,這不會防止轉換程式存取載入檔中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該對象傳遞至 Transform 方法。 如需詳細資訊,請參閱 如何:轉換節點片段。
另請參閱
適用於
Transform(XmlReader, XmlWriter)
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, results As XmlWriter)
參數
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
範例
以下範例是轉換 books.xml 檔案中的第一本書。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
XmlReader reader = XmlReader.Create("books.xml");
reader.MoveToContent();
// Execute the transformation.
xslt.Transform(reader, writer);
writer.Close();
reader.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
Dim reader As XmlReader = XmlReader.Create("books.xml")
reader.MoveToContent()
' Execute the transformation.
xslt.Transform(reader, writer)
writer.Close()
reader.Close()
備註
如果啟用了 XSLT document() 函式,則會用 XmlUrlResolver 沒有使用者憑證的 來解決。 如果外部資源位於需要驗證的網路資源上,則使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
另請參閱
適用於
Transform(String, XmlWriter)
使用 URI 指定的輸入文件執行轉換,並將結果輸出為 XmlWriter。
public:
void Transform(System::String ^ inputUri, System::Xml::XmlWriter ^ results);
public void Transform(string inputUri, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, results As XmlWriter)
參數
- inputUri
- String
輸入文件的 URI。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
例外狀況
或inputUri值results為 null。
執行 XSLT 轉換時發生錯誤。
inputUri該值包含檔名或找不到目錄。
inputUri 不是有效的 URI。
輸入文件載入時出現了解析錯誤。
範例
以下範例執行 XSLT 轉換並輸出到物件 XmlWriter 。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform("books.xml", writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform("books.xml", writer)
writer.Close()
備註
此方法使用 XmlUrlResolver 預設且無使用者憑證的版本來解析輸入文件及樣式表中任何 XSLT document() 函式的實例。 如果這些資源中的任何一個位於需要驗證的網路資源上,請使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
會用預設設定來 XmlReader 載入輸入文件。 DTD 處理在 XmlReader. 如果你需要 DTD 處理,請建立啟用此功能的 , XmlReader 然後傳給該 Transform 方法。
此方法不支援該 xsl:strip-space 元素。 如果你編譯的樣式表包含了該 xsl:strip-space 元素,你必須使用 Transform 以 作為 XmlReader 輸入參數的超載。
另請參閱
適用於
Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)
使用物件指定的 XmlReader 輸入文件執行轉換,並將結果輸出為 XmlWriter。 它 XsltArgumentList 提供額外的執行時參數,而 XmlResolver 則解析 XSLT document() 函式。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
參數
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
- documentResolver
- XmlResolver
用來 XmlResolver 解析 XSLT document() 函式。 若為 null, document() 則函數未被解析。
例外狀況
或input值results為 null。
執行 XSLT 轉換時發生錯誤。
範例
以下範例使用 來 XmlSecureResolver 解析 XSLT document() 函式。
// Create a resolver and specify the necessary credentials.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver);
// Transform the file.
using (XmlReader reader = XmlReader.Create("books.xml"))
{
using (XmlWriter writer = XmlWriter.Create("output.xml"))
{
xslt.Transform(reader, null, writer, resolver);
}
}
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
Dim settings As New XsltSettings()
settings.EnableDocumentFunction = True
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver)
' Transform the file.
Using reader As XmlReader = XmlReader.Create("books.xml")
Using writer As XmlWriter = XmlWriter.Create("output.xml")
xslt.Transform(reader, Nothing, writer, resolver)
End Using
End Using
另請參閱
適用於
Transform(String, XsltArgumentList, XmlWriter)
使用 URI 指定的輸入文件執行轉換,並將結果輸出為 XmlWriter。 提供了 XsltArgumentList 額外的執行時參數。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As XmlWriter)
參數
- inputUri
- String
輸入文件的 URI。
- arguments
- XsltArgumentList
an XsltArgumentList 包含用作轉換輸入的命名空間限定參數。 這個值可以是 null。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該使用XmlWriter該屬性回傳的XmlWriterSettings物件來建立 。OutputSettings 這確保了輸出 XmlWriter 設定正確。
例外狀況
或inputUri值results為 null。
執行 XSLT 轉換時發生錯誤。
inputUri該值包含檔名或找不到目錄。
inputUri 不是有效的 URI。
輸入文件載入時出現了解析錯誤。
範例
以下範例使用物件 XsltArgumentList 建立一個代表當前日期與時間的參數。
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create the XslCompiledTransform and load the stylesheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("order.xsl");
// Create the XsltArgumentList.
XsltArgumentList xslArg = new XsltArgumentList();
// Create a parameter which represents the current date and time.
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
// Transform the file.
using (XmlWriter w = XmlWriter.Create("output.xml"))
{
xslt.Transform("order.xml", xslArg, w);
}
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Public Class Sample
Public Shared Sub Main()
' Create the XslCompiledTransform and load the stylesheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("order.xsl")
' Create the XsltArgumentList.
Dim xslArg As New XsltArgumentList()
' Create a parameter which represents the current date and time.
Dim d As DateTime = DateTime.Now
xslArg.AddParam("date", "", d.ToString())
Using w As XmlWriter = XmlWriter.Create("output.xml")
' Transform the file.
xslt.Transform("order.xml", xslArg, w)
End Using
End Sub
End Class
範例使用以下兩個資料檔案作為輸入。
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>
備註
此方法使用 XmlUrlResolver 預設且無使用者憑證的版本來解析輸入文件及樣式表中任何 XSLT document() 函式的實例。 如果這些資源中的任何一個位於需要驗證的網路資源上,請使用將 視為 XmlResolver 參數之一的超載,並指定 a XmlResolver 並指定必要的憑證。
會用預設設定來 XmlReader 載入輸入文件。 DTD 處理在 XmlReader. 如果你需要 DTD 處理,請建立啟用此功能的 , XmlReader 然後傳給該 Transform 方法。
另請參閱
適用於
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
透過物件指定的 IXPathNavigable 輸入文件執行轉換,並將結果輸出為 XmlWriter。 它 XsltArgumentList 提供額外的執行時參數,並 XmlResolver 解析 XSLT document() 函式。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
參數
- input
- IXPathNavigable
要轉換的文件是由物件指定 IXPathNavigable 。
- arguments
- XsltArgumentList
參數列表為 XsltArgumentList。
- results
- XmlWriter
你想輸出的那個 XmlWriter 。
如果樣式表包含xsl:output元素,你應該用XmlWriter從該XmlWriterSettings屬性回傳的物件來建立該OutputSettings元素。 這確保了輸出 XmlWriter 設定正確。
- documentResolver
- XmlResolver
用來 XmlResolver 解析 XSLT document() 函式。 若為 null, document() 則函數未被解析。