Transform 方法接受三种输入类型的源文档:实现 IXPathNavigable 接口的对象、读取源文档的 XmlReader 对象或字符串 URI。
![]() |
---|
默认情况下,XslCompiledTransform 类保留空白。这符合 W3C XSLT 1.0 建议的第 3.4 节(第 3.4 节,http://www.w3.org/TR/xslt.html#strip)。 |
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.
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 文件可在以下主题中找到:如何:通过使用程序集执行 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 文件可在以下主题中找到:如何:通过使用程序集执行 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 处理期间解析外部资源。