方法 Transform 接受源文檔的三種輸入類型:實作 介面的對象 IXPathNavigable 、 XmlReader 讀取源文檔的物件,或字串 URI。
備註
類別 XslCompiledTransform 預設會保留空格符。 這是根據 W3C XSLT 1.0 建議的第 3.4 節。
IXPathNavigable 介面
介面IXPathNavigable會在XmlNode和XPathDocument類別中實作。 這些類別代表 XML 資料的記憶體內部快取。
類別 XmlNode 是以 W3C 檔案物件模型 (DOM) 為基礎,並包含編輯功能。
類別 XPathDocument 是以 XPath 數據模型為基礎的唯讀資料存放區。 XPathDocument 是 XSLT 處理的建議類別。 與XmlNode類別相比,它可提供更快的效能。
備註
轉換會套用至整個文件。 換句話說,如果您傳入檔根節點以外的節點,這不會防止轉換程式存取載入檔中的所有節點。 若要轉換節點片段,您必須建立只包含節點片段的物件,並將該對象傳遞至 Transform 方法。 如需詳細資訊,請參閱 如何:轉換節點片段。
下列範例使用 XslCompiledTransform.Transform 方法來使用 transform.xsl 樣式表單,將 books.xml 檔案轉換成 books.html 檔案。 您可以在本主題中找到 books.xml 和 transform.xsl 檔案 :如何:使用元件執行 XSLT 轉換。
// 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);
' 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)
XmlReader 物件
方法 Transform 會從當前的節點載入,並遍歷 XmlReader 的所有子節點。 這可讓您使用檔的一部分做為內容檔。 方法 Transform 傳回之後, XmlReader 會位於內容文件結尾之後的下一個節點上。 如果到達文件的結尾,則指標 XmlReader 會被定位到檔尾(EOF)。
下列範例使用 XslCompiledTransform.Transform 方法來使用 transform.xsl 樣式表單,將 books.xml 檔案轉換成 books.html 檔案。 您可以在本主題中找到 books.xml 和 transform.xsl 檔案 :如何:使用元件執行 XSLT 轉換。
// 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);
'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)
字串 URI
您也可以將源文件 URI 指定為 XSLT 輸入。 XmlResolver用來解析 URI。 您可以透過將 XmlResolver 傳遞給 Transform 方法來指定使用。 XmlResolver如果未指定 ,方法會Transform使用沒有認證的預設值XmlUrlResolver。
下列範例使用 XslCompiledTransform.Transform 方法來使用 transform.xsl 樣式表單,將 books.xml 檔案轉換成 books.html 檔案。 您可以在本主題中找到 books.xml 和 transform.xsl 檔案 :如何:使用元件執行 XSLT 轉換。
// 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");
' 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")
如需詳細資訊,請參閱 在 XSLT 處理期間解析外部資源。