XslCompiledTransform.Transform 方法

定義

執行 XSLT 轉換。

多載

Transform(XmlReader, XsltArgumentList, TextWriter)

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至 TextWriterXsltArgumentList 會提供額外的執行階段引數。

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數。

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 TextWriterXsltArgumentList 會提供額外的執行階段引數。

Transform(IXPathNavigable, XsltArgumentList, Stream)

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至資料流。 XsltArgumentList 會提供額外的執行階段引數。

Transform(XmlReader, XsltArgumentList, XmlWriter)

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數。

Transform(XmlReader, XsltArgumentList, Stream)

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至資料流。 XsltArgumentList 會提供額外的執行階段引數。

Transform(String, String)

使用 URI 所指定的輸入文件執行轉換,並將結果輸出至檔案。

Transform(String, XsltArgumentList, TextWriter)

使用 URI 所指定的輸入文件執行轉換,並將結果輸出至 TextWriter

Transform(String, XsltArgumentList, Stream)

使用 URI 所指定的輸入文件執行轉換,並將結果輸出至資料流。 XsltArgumentList 會提供額外的執行階段引數。

Transform(IXPathNavigable, XmlWriter)

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriter

Transform(XmlReader, XmlWriter)

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriter

Transform(String, XmlWriter)

使用 URI 所指定的輸入文件執行轉換,並將結果輸出至 XmlWriter

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList提供額外的執行時間引數,而 XmlResolver 會解析 XSLT document() 函式。

Transform(String, XsltArgumentList, XmlWriter)

使用 URI 所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數。

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數,且 XmlResolver 會解析 XSLT document() 函式。

備註

注意

在偵錯模式中編譯的 XSLT 與在發行模式中編譯的 XSLT 之間有一些差異。 在某些情況下,偵測模式中編譯的樣式表在 Load 期間將不會擲回錯誤,但是稍後會在 Transform 期間失敗。 在發行模式中編譯的相同樣式表在 Load 期間將會失敗。 這類行為範例的情況是在將非節點集型別的變數指派給需要節點集的運算式時。

Transform(XmlReader, XsltArgumentList, TextWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至 TextWriterXsltArgumentList 會提供額外的執行階段引數。

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)

參數

input
XmlReader

包含輸入文件的 XmlReader

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
TextWriter

您要輸出的目標 TextWriter

例外狀況

inputresults 的值為 null

執行 XSLT 轉換時發生錯誤。

備註

如果樣式表單包含 XSLT document() 函式,則會使用 XmlUrlResolver 沒有使用者認證的 來解析。 如果外部資源位於需要驗證的網路資源上,請使用採用 XmlResolver 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

另請參閱

適用於

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數。

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 Framework 中,這可以是 XmlNode (一般為 XmlDocument),或是包含要轉換的資料的 XPathDocument

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
XmlWriter

您要輸出的目標 XmlWriter

如果樣式表單包含專案 xsl:output ,您應該使用 XmlWriterSettings 從 屬性傳回的 OutputSettings 物件來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

例外狀況

inputresults 的值為 null

執行 XSLT 轉換時發生錯誤。

備註

如果已啟用 XSLT document() 函式,則會使用 XmlUrlResolver 沒有使用者認證的 來解析。 如果外部資源位於需要驗證的網路資源上,請使用採用 XmlResolver 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

這個方法不支援 xsl:strip-space 專案。 如果您的編譯樣式表單包含 xsl:strip-space 元素,您必須使用 Transform 採用 做為輸入引數的多載 XmlReader

IXPathNavigable 介面是在 XmlNodeXPathDocument 類別中實作的。 這些類別代表 XML 資料的記憶體中快取。

  • XmlNode 類別是以 W3C 文件物件模型 (DOM) 為基礎,並包含編輯功能。

  • XPathDocument 類別是以 XPath 資料模型為基礎的唯讀資料存放區。 XPathDocument 是建議用於 XSLT 處理的類別。 與 XmlNode 類別相比,它可提供更高的效能。

轉換是指套用到整個文件。 換言之,如果您要傳入的節點不是文件的根節點,則不會阻止轉換程序取得已載入文件中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該物件傳遞至 Transform 方法。 如需詳細資訊,請參閱如何:轉換節點片段

另請參閱

適用於

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 TextWriterXsltArgumentList 會提供額外的執行階段引數。

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 Framework 中,這可以是 XmlNode (一般為 XmlDocument),或是包含要轉換的資料的 XPathDocument

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
TextWriter

您要輸出的目標 TextWriter

例外狀況

inputresults 的值為 null

執行 XSLT 轉換時發生錯誤。

備註

如果已啟用 XSLT document() 函式,則會使用 XmlUrlResolver 沒有使用者認證的 來解析。 如果外部資源位於需要驗證的網路資源上,請使用採用 XmlResolver 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

這個方法不支援 xsl:strip-space 專案。 如果您的編譯樣式表單包含 xsl:strip-space 元素,您必須使用 Transform 採用 做為輸入引數的多載 XmlReader

IXPathNavigable 介面是在 XmlNodeXPathDocument 類別中實作的。 這些類別代表 XML 資料的記憶體中快取。

  • XmlNode 類別是以 W3C 文件物件模型 (DOM) 為基礎,並包含編輯功能。

  • XPathDocument 類別是以 XPath 資料模型為基礎的唯讀資料存放區。 XPathDocument 是建議用於 XSLT 處理的類別。 與 XmlNode 類別相比,它可提供更高的效能。

轉換是指套用到整個文件。 換言之,如果您要傳入的節點不是文件的根節點,則不會阻止轉換程序取得已載入文件中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該物件傳遞至 Transform 方法。 如需詳細資訊,請參閱如何:轉換節點片段

另請參閱

適用於

Transform(IXPathNavigable, XsltArgumentList, Stream)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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 Framework 中,這可以是 XmlNode (一般為 XmlDocument),或是包含要轉換的資料的 XPathDocument

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
Stream

要輸出至的資料流。

例外狀況

inputresults 的值為 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

這個方法不支援 xsl:strip-space 專案。 如果您的編譯樣式表單包含 xsl:strip-space 元素,您必須使用 Transform 採用 做為輸入引數的多載 XmlReader

IXPathNavigable 介面是在 XmlNodeXPathDocument 類別中實作的。 這些類別代表 XML 資料的記憶體中快取。

  • XmlNode 類別是以 W3C 文件物件模型 (DOM) 為基礎,並包含編輯功能。

  • XPathDocument 類別是以 XPath 資料模型為基礎的唯讀資料存放區。 XPathDocument 是建議用於 XSLT 處理的類別。 與 XmlNode 類別相比,它可提供更高的效能。

轉換是指套用到整個文件。 換言之,如果您要傳入的節點不是文件的根節點,則不會阻止轉換程序取得已載入文件中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該物件傳遞至 Transform 方法。 如需詳細資訊,請參閱如何:轉換節點片段

另請參閱

適用於

Transform(XmlReader, XsltArgumentList, XmlWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 XmlReader 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數。

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)

參數

input
XmlReader

包含輸入文件的 XmlReader

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
XmlWriter

您要輸出的目標 XmlWriter

如果樣式表單包含專案 xsl:output ,您應該使用 XmlWriterSettings 從 屬性傳回的 OutputSettings 物件來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

例外狀況

inputresults 的值為 null

執行 XSLT 轉換時發生錯誤。

備註

如果樣式表單包含 XSLT document() 函式,則會使用 XmlUrlResolver 沒有使用者認證的 來解析。 如果外部資源位於需要驗證的網路資源上,請使用採用 XmlResolver 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

另請參閱

適用於

Transform(XmlReader, XsltArgumentList, Stream)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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)

參數

input
XmlReader

包含輸入文件的 XmlReader

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
Stream

要輸出至的資料流。

例外狀況

inputresults 的值為 null

執行 XSLT 轉換時發生錯誤。

備註

如果樣式表單包含 XSLT document() 函式,則會使用 XmlUrlResolver 沒有使用者認證的 來解析。 如果外部資源位於需要驗證的網路資源上,請使用採用 XmlResolver 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

另請參閱

適用於

Transform(String, String)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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。

例外狀況

inputUriresultsFile 的值為 null

執行 XSLT 轉換時發生錯誤。

找不到輸入文件。

inputUriresultsFile 值包含找不到的檔案名稱或目錄。

無法解析 inputUriresultsFile 值。

-或-

處理這個要求時發生錯誤。

inputUriresultsFile 不是有效的 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

XmlReader具有預設設定的 會用來載入輸入檔。 DTD 處理在 上 XmlReader 已停用。 如果您需要 DTD 處理,請建立 XmlReader 已啟用此功能的 ,並將它傳遞至 Transform 方法。

另請參閱

適用於

Transform(String, XsltArgumentList, TextWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
TextWriter

您要輸出的目標 TextWriter

例外狀況

inputUriresults 的值為 null

執行 XSLT 轉換時發生錯誤。

找不到 inputUri 值所包含的檔案名稱或目錄。

無法保留 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

XmlReader具有預設設定的 會用來載入輸入檔。 DTD 處理在 上 XmlReader 已停用。 如果您需要 DTD 處理,請建立 XmlReader 已啟用此功能的 ,並將它傳遞至 Transform 方法。

另請參閱

適用於

Transform(String, XsltArgumentList, Stream)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
Stream

要輸出至的資料流。

例外狀況

inputUriresults 的值為 null

執行 XSLT 轉換時發生錯誤。

找不到 inputUri 值所包含的檔案名稱或目錄。

無法保留 inputUri 值。

-或-

處理這個要求時發生錯誤。

inputUri 不是有效的 URI。

載入輸入文件時,發生剖析錯誤。

備註

這個方法會使用預設值 XmlUrlResolver ,而不使用任何使用者認證來解析輸入檔,以及樣式表單中找到的任何 XSLT document() 函式實例。 如果其中任一資源位於需要驗證的網路資源上,請使用採用 XmlResolver 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

XmlReader具有預設設定的 會用來載入輸入檔。 DTD 處理在 上 XmlReader 已停用。 如果您需要 DTD 處理,請建立 XmlReader 已啟用此功能的 ,並將它傳遞至 Transform 方法。

另請參閱

適用於

Transform(IXPathNavigable, XmlWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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 Framework 中,這可以是 XmlNode (一般為 XmlDocument),或是包含要轉換的資料的 XPathDocument

results
XmlWriter

您要輸出的目標 XmlWriter

如果樣式表單包含專案 xsl:output ,您應該使用 XmlWriterSettings 從 屬性傳回的物件 OutputSettings 來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

例外狀況

inputresults 的值為 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

這個方法不支援 xsl:strip-space 專案。 如果您的編譯樣式表單包含 xsl:strip-space 專案,您必須使用接受 Transform 做為輸入引數的多載 XmlReader

IXPathNavigable 介面是在 XmlNodeXPathDocument 類別中實作的。 這些類別代表 XML 資料的記憶體中快取。

  • XmlNode 類別是以 W3C 文件物件模型 (DOM) 為基礎,並包含編輯功能。

  • XPathDocument 類別是以 XPath 資料模型為基礎的唯讀資料存放區。 XPathDocument 是建議用於 XSLT 處理的類別。 與 XmlNode 類別相比,它可提供更高的效能。

轉換是指套用到整個文件。 換言之,如果您要傳入的節點不是文件的根節點,則不會阻止轉換程序取得已載入文件中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該物件傳遞至 Transform 方法。 如需詳細資訊,請參閱如何:轉換節點片段

另請參閱

適用於

Transform(XmlReader, XmlWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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)

參數

input
XmlReader

包含輸入文件的 XmlReader

results
XmlWriter

您要輸出的目標 XmlWriter

如果樣式表單包含專案 xsl:output ,您應該使用 XmlWriterSettings 從 屬性傳回的物件 OutputSettings 來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

例外狀況

inputresults 的值為 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

另請參閱

適用於

Transform(String, XmlWriter)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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 ,您應該使用 XmlWriterSettings 從 屬性傳回的物件 OutputSettings 來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

例外狀況

inputUriresults 的值為 null

執行 XSLT 轉換時發生錯誤。

找不到 inputUri 值所包含的檔案名稱或目錄。

無法保留 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

XmlReader具有預設設定的 會用來載入輸入檔。 DTD 處理在 上 XmlReader 已停用。 如果您需要 DTD 處理,請建立 XmlReader 已啟用此功能的 ,並將它傳遞至 Transform 方法。

這個方法不支援 xsl:strip-space 專案。 如果您的編譯樣式表單包含 xsl:strip-space 專案,您必須使用接受 Transform 做為輸入引數的多載 XmlReader

另請參閱

適用於

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 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)

參數

input
XmlReader

包含輸入文件的 XmlReader

arguments
XsltArgumentList

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
XmlWriter

您要輸出的目標 XmlWriter

如果樣式表單包含專案 xsl:output ,您應該使用 XmlWriterSettings 從 屬性傳回的物件 OutputSettings 來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

documentResolver
XmlResolver

XmlResolver,用於解析 XSLT document() 函式。 如果值為 null,則不會解析 document() 函式。

例外狀況

inputresults 的值為 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)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 URI 所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數。

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

XsltArgumentList,包含用來當做轉換輸入之符合命名空間的引數。 這個值可以是 null

results
XmlWriter

您要輸出的目標 XmlWriter

如果樣式表單包含專案 xsl:output ,您應該使用 XmlWriterSettings 從 屬性傳回的 OutputSettings 物件來建立 XmlWriter 。 如此可確保 XmlWriter 具有正確的輸出設定。

例外狀況

inputUriresults 的值為 null

執行 XSLT 轉換時發生錯誤。

找不到 inputtUri 值所包含的檔案名稱或目錄。

無法保留 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 作為其中一個引數的多載,並使用必要的認證來指定 XmlResolver

XmlReader具有預設設定的 會用來載入輸入檔。 DTD 處理在 上 XmlReader 已停用。 如果您需要 DTD 處理,請建立 XmlReader 已啟用此功能的 ,並將它傳遞至 Transform 方法。

另請參閱

適用於

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs
Source:
XslCompiledTransform.cs

使用 IXPathNavigable 物件所指定的輸入文件執行轉換,並將結果輸出至 XmlWriterXsltArgumentList 會提供額外的執行階段引數,且 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 項目,您應該使用從 OutputSettings 屬性傳回的 XmlWriterSettings 物件建立 XmlWriter。 如此可確保 XmlWriter 具有正確的輸出設定。

documentResolver
XmlResolver

XmlResolver,用於解析 XSLT document() 函式。 如果值為 null,則不會解析 document() 函式。

適用於