共用方式為


XslCompiledTransform 類別的輸入

Transform 方法可接受來源文件的三種輸入型別:實作 IXPathNavigable 介面的物件、讀取來源文件的 XmlReader 物件,或是字串 URI。

注意事項注意事項

依預設,XslCompiledTransform 類別會保留泛空白字元。這符合 W3C XSLT 1.0 版建議事項的 3.4 節 (3.4 節,http://www.w3.org/TR/xslt.html#strip)。

IXPathNavigable 介面

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

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

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

注意事項注意事項

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

下列範例使用 XslCompiledTransform.Transform 方法,透過 transform.xsl 樣式表將 books.xml 檔案轉換為 books.html 檔案。 在下列主題中可以找到 books.xml 與 transform.xsl 檔案:HOW TO:使用組件執行 XSLT 轉換

' Open books.xml as an XPathDocument.
Dim doc As XPathDocument = New XPathDocument("books.xml")

' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")

' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)

'Execute the transformation.
transform.Transform(doc, writer)
// Open books.xml as an XPathDocument.
XPathDocument doc = new XPathDocument("books.xml");

// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");

// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);

// Execute the transformation.
transform.Transform(doc, writer);

XmlReader 物件

Transform 方法會從 XmlReader 的目前節點載入,並套用至其所有子系節點。 如此您就能夠利用文件中的某些部份做為內容文件。 傳回 Transform 方法後,XmlReader 便定位於內容文件結尾之後的下一節點。 如果到達文件結尾,則 XmlReader 會定位於檔案結尾 (EOF)。

下列範例使用 XslCompiledTransform.Transform 方法,透過 transform.xsl 樣式表將 books.xml 檔案轉換為 books.html 檔案。 在下列主題中可以找到 books.xml 與 transform.xsl 檔案:HOW TO:使用組件執行 XSLT 轉換

'Create a reader to read books.xml
Dim reader As XmlReader = XmlReader.Create("books.xml")

' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")

' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)

' Execute the transformation.
transform.Transform(reader, writer)
// Create a reader to read books.xml
XmlReader reader = XmlReader.Create("books.xml");

// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");

// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);

// Execute the transformation.
transform.Transform(reader, writer);

字串 URI

您也可以將來源文件 URI 指定為 XSLT 輸入。 XmlResolver 可用於解析 URI。 您可以藉由將要使用的 XmlResolver 傳遞給 Transform 方法,來對其進行指定。 若未指定 XmlResolver,則 Transform 方法會使用不含認證的預設 XmlUrlResolver

下列範例使用 XslCompiledTransform.Transform 方法,透過 transform.xsl 樣式表將 books.xml 檔案轉換為 books.html 檔案。 在下列主題中可以找到 books.xml 與 transform.xsl 檔案:HOW TO:使用組件執行 XSLT 轉換

' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)

' Execute the transformation.
transform.Transform("books.xml", "books.html")
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);

// Execute the transformation.
transform.Transform("books.xml", "books.html");

如需詳細資訊,請參閱XSLT 處理期間解析外部資源

請參閱

其他資源

XSLT 轉換