XslTransform.Transform Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует данные XML с помощью таблицы стилей XSLT.
Перегрузки
Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Преобразует данные XML в XPathNavigator, используя указанные аргументы |
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Преобразует данные XML в XPathNavigator, используя указанные аргументы |
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Преобразует данные XML в XPathNavigator, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Является устаревшей.
Преобразует данные XML в XPathNavigator, используя указанные аргументы, и результат выводит в XmlWriter. |
Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Является устаревшей.
Преобразует данные XML в XPathNavigator, используя указанные аргументы |
Transform(String, String, XmlResolver) |
Преобразует данные XML во входном файле и выводит результат в выходной файл. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Является устаревшей.
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Является устаревшей.
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Является устаревшей.
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Преобразует данные XML в XPathNavigator, используя указанные аргументы, и результат выводит в XmlWriter. |
Transform(XPathNavigator, XsltArgumentList) |
Является устаревшей.
Преобразует данные XML в XPathNavigator, используя указанные аргументы |
Transform(IXPathNavigable, XsltArgumentList) |
Является устаревшей.
Преобразует данные XML в IXPathNavigable, используя указанные аргументы |
Transform(String, String) |
Является устаревшей.
Преобразует данные XML во входном файле и выводит результат в выходной файл. |
Transform(XPathNavigator, XsltArgumentList, Stream) |
Является устаревшей.
Преобразует данные XML в XPathNavigator, используя указанные аргументы |
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Преобразует данные XML в XPathNavigator, используя указанные аргументы args
, результат выводит в XmlReader.
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(XPathNavigator, XsltArgumentList, XmlResolver).
Возвращаемое значение
Объект XmlReader, содержащий результат преобразования.
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей. Выбор преобразования применяется к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не будет обращаться ко всем узлам загруженного документа. После выполнения XPathNavigator преобразования остается в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Так как XmlReader предоставляет выходные данные только для чтения, xsl:output
элемент игнорируется. Дополнительные сведения см. в выходных данных XslTransform .
Этот метод позволяет выполнять асинхронное преобразование исходного документа.
См. также раздел
Применяется к
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Преобразует данные XML в XPathNavigator, используя указанные аргументы args
, результат выводит в TextWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver).
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Выбранные преобразования применяются к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не может получить доступ ко всем узлам загруженного документа. После выполнения преобразования останки XPathNavigator остаются в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Атрибут кодирования элемента xsl:output
не поддерживается при выводе в объект TextWriter. Сведения о поддерживаемых xsl:output
атрибутах см. в выходных данных XslTransform.
См. также раздел
Применяется к
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Преобразует данные XML в XPathNavigator, используя указанные аргументы args
, результат выводит в Stream.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- Stream
Поток, в который требуется направить вывод.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver).
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Примеры
В следующем примере таблица клиента загружается в XmlDataDocument таблицу клиента и выполняется преобразование XSLT для извлечения данных клиента в таблицу HTML. В этом примере используется база данных Microsoft SQL Server 2000 Northwind.
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create a DataSet and load it with customer data.
DataSet dsNorthwind = new DataSet();
String sConnect;
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
SqlConnection nwconnect = new SqlConnection(sConnect);
String sCommand = "Select * from Customers where Region='WA'";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect);
myDataAdapter.Fill(dsNorthwind,"Customers");
// Load the DataSet into an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument(dsNorthwind);
// Create the XslTransform object and load the stylesheet.
XslTransform xsl = new XslTransform();
xsl.Load("customers.xsl");
// Create an XPathNavigator to use in the transform.
XPathNavigator nav = doc.CreateNavigator();
// Create a FileStream object.
FileStream fs = new FileStream("cust.html", FileMode.Create);
// Transform the data.
xsl.Transform(nav, null, fs, null);
}
}
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
public class Sample
public shared sub Main()
' Create a DataSet and load it with customer data.
Dim dsNorthwind as DataSet = new DataSet()
Dim sConnect as String
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim nwconnect as SqlConnection
nwconnect = new SqlConnection(sConnect)
Dim sCommand as String = "Select * from Customers where Region='WA'"
Dim myDataAdapter as SqlDataAdapter
myDataAdapter = new SqlDataAdapter(sCommand, nwconnect)
myDataAdapter.Fill(dsNorthwind,"Customers")
' Load the DataSet into an XmlDataDocument.
Dim doc as XmlDataDocument = new XmlDataDocument(dsNorthwind)
' Create the XslTransform object and load the stylesheet.
Dim xsl as XslTransform = new XslTransform()
xsl.Load("customers.xsl")
' Create an XPathNavigator to use in the transform.
Dim nav as XPathNavigator = doc.CreateNavigator()
' Create a FileStream object.
Dim fs as FileStream = new FileStream("cust.html", FileMode.Create)
' Transform the data.
xsl.Transform(nav, nothing, fs, nothing)
end sub
end class
В примере в качестве входных данных используется файл customers.xsl
.
<!-- Stylesheet to sort customers by city-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="NewDataSet">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>City</TD>
</TR>
<xsl:apply-templates select="Customers">
<xsl:sort select="City"/>
</xsl:apply-templates>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Customers">
<TR>
<TD><xsl:value-of select="CompanyName"/></TD>
<TD><xsl:value-of select="ContactName"/></TD>
<TD><xsl:value-of select="City"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Выбранные преобразования применяются к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не может получить доступ ко всем узлам загруженного документа. После выполнения преобразования останки XPathNavigator остаются в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Сведения о поддерживаемых xsl:output
атрибутах см. в выходных данных XslTransform.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в XmlWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver).
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Примеры
В следующем примере XML-документ преобразуется в HTML-документ. В нем отображаются ISBN, название и цена для каждой книги в таблице.
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;
int main()
{
String^ filename = "books.xml";
String^ stylesheet = "output.xsl";
//Load the stylesheet.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( stylesheet );
//Load the file to transform.
XPathDocument^ doc = gcnew XPathDocument( filename );
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
//Transform the file and send the output to the console.
xslt->Transform(doc,nullptr,writer,nullptr);
writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample
{
private const String filename = "books.xml";
private const String stylesheet = "output.xsl";
public static void Main()
{
//Load the stylesheet.
XslTransform xslt = new XslTransform();
xslt.Load(stylesheet);
//Load the file to transform.
XPathDocument doc = new XPathDocument(filename);
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
//Transform the file and send the output to the console.
xslt.Transform(doc, null, writer, null);
writer.Close();
}
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
Public Class Sample
Private Shared filename1 As String = "books.xml"
Private Shared stylesheet1 As String = "output.xsl"
Public Shared Sub Main()
'Load the stylesheet.
Dim xslt As New XslTransform()
xslt.Load(stylesheet1)
'Load the file to transform.
Dim doc As New XPathDocument(filename1)
'Create an XmlTextWriter which outputs to the console.
Dim writer As New XmlTextWriter(Console.Out)
'Transform the file and send the output to the console.
xslt.Transform(doc, Nothing, writer, Nothing)
writer.Close()
End Sub
End Class
Образец использует следующие два входных файла.
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>
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Элемент xsl:output
не поддерживается при выходе в объект XmlWriter (xsl:output
игнорируется). Дополнительные сведения см. в выходных данных XslTransform .
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
- XmlSecureResolver
- Credentials
- Реализация поведения по выбору в классе XslTransform
- Результаты вывода XslTransform
Применяется к
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в TextWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver).
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Примеры
В следующем примере xml-файл преобразуется и выводится HTML-строка. StringWriter Классы StringReader используются для чтения и записи строк.
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample {
public static void Main() {
// Create a string containing the XSLT stylesheet.
String xsltString =
@"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='bookstore'>
<HTML>
<HEAD>
<TITLE>Book Titles</TITLE>
</HEAD>
<BODY>
<xsl:apply-templates select='book'/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='book'>
<P><xsl:value-of select='title'/></P>
</xsl:template>
</xsl:stylesheet>";
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
StringReader rdr = new StringReader(xsltString);
xslt.Load(new XPathDocument(rdr), null, null);
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform(new XPathDocument("books.xml"), null, writer, null);
HTMLoutput = writer.ToString();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
public class Sample
public shared sub Main()
' Create a string containing the XSLT stylesheet.
Dim xsltString as String
xsltString = "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>" & _
" <xsl:template match='bookstore'>" & _
" <HTML>" & _
" <HEAD>" & _
" <TITLE>Book Titles</TITLE>" & _
" </HEAD>" & _
" <BODY>" & _
" <xsl:apply-templates select='book'/>" & _
" </BODY>" & _
" </HTML>" & _
" </xsl:template>" & _
" <xsl:template match='book'>" & _
" <P><xsl:value-of select='title'/></P>" & _
" </xsl:template>" & _
" </xsl:stylesheet>"
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
Dim rdr as StringReader = new StringReader(xsltString)
xslt.Load(new XPathDocument(rdr), nothing, nothing)
' Transform the file and output an HTML string.
Dim HTMLoutput as string
Dim writer as StringWriter = new StringWriter()
xslt.Transform(new XPathDocument("books.xml"), nothing, writer, nothing)
HTMLoutput = writer.ToString()
end sub
end class
В примере в качестве входных данных используется файл 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>
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей.
Атрибут кодирования для xsl:output
элемента не поддерживается при выходе в .TextWriter Сведения о поддерживаемых атрибутах xsl:output
см. в выходных данных XslTransform.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
- XmlSecureResolver
- Credentials
- Реализация поведения по выбору в классе XslTransform
- Результаты вывода XslTransform
Применяется к
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в Stream.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- Stream
Поток, в который требуется направить вывод.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform.
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Примеры
В следующем примере выполняется преобразование на странице ASP.NET.
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Load the XML document to transform.
XPathDocument doc = new XPathDocument(Server.MapPath("books.xml"));
// Load the stylesheet and perform the transform.
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath("output.xsl"));
xslt.Transform(doc, null, Response.OutputStream, null);
}
</script>
</html>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="VB" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
' Load the XML document to transform.
dim doc as XPathDocument = new XPathDocument(Server.MapPath("books.xml"))
' Load the stylesheet and perform the transform.
dim xslt as XslTransform = new XslTransform()
xslt.Load(Server.MapPath("output.xsl"))
xslt.Transform(doc, nothing, Response.OutputStream, nothing)
end sub
</script>
</html>
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
- XmlSecureResolver
- Credentials
- Реализация поведения по выбору в классе XslTransform
- Результаты вывода XslTransform
Применяется к
Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в XPathNavigator, используя указанные аргументы, и результат выводит в XmlWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter)
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей. Выбор преобразования применяется к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не будет обращаться ко всем узлам загруженного документа. После выполнения XPathNavigator преобразования останки в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Элемент xsl:output
не поддерживается при выходе в объект XmlWriter (xsl:output
игнорируется). Дополнительные сведения см. в выходных данных XslTransform .
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет способ разрешения функции XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
См. также раздел
Применяется к
Transform(XPathNavigator, XsltArgumentList, TextWriter)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в XPathNavigator, используя указанные аргументы args
, результат выводит в TextWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter)
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Выбранные преобразования применяются к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не может получить доступ ко всем узлам загруженного документа. После выполнения преобразования останки XPathNavigator остаются в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Атрибут кодирования элемента xsl:output
не поддерживается при выводе в объект TextWriter. Сведения о поддерживаемых xsl:output
атрибутах см. в выходных данных XslTransform.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет способ разрешения функции XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
См. также раздел
Применяется к
Transform(String, String, XmlResolver)
Преобразует данные XML во входном файле и выводит результат в выходной файл.
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile, System::Xml::XmlResolver ^ resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver? resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver resolver);
member this.Transform : string * string * System.Xml.XmlResolver -> unit
Public Sub Transform (inputfile As String, outputfile As String, resolver As XmlResolver)
Параметры
- inputfile
- String
URL-адрес исходного документа для преобразования.
- outputfile
- String
URL-адрес выходного файла.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform.
Примеры
В следующем примере выполняется преобразование XSLT и выходные данные в файл. С XmlUrlResolver учетными данными по умолчанию используется разрешение внешних ресурсов. Дополнительные сведения см. в разделе DefaultCredentials.
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "http://myServer/data/authors.xsl", resolver );
// Transform the file.
xslt->Transform( "books.xml", "books.html", resolver );
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver);
// Transform the file.
xslt.Transform("books.xml", "books.html", resolver);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver)
' Transform the file.
xslt.Transform("books.xml", "titles.xml", resolver)
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в XmlWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет, как разрешается функция XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Элемент xsl:output
не поддерживается при выходе в объект XmlWriter (xsl:output
игнорируется). Дополнительные сведения см. в выходных данных XslTransform .
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в XmlReader.
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(IXPathNavigable, XsltArgumentList, XmlResolver).
Возвращаемое значение
Объект XmlReader, содержащий результат преобразования.
Примеры
Следующий пример преобразует XML-документ и выводит результаты в .XmlReader
Для XmlUrlResolver обработки любых функций XSLT document()
используется с необходимыми учетными данными.
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "titles.xsl" );
// Create a resolver and specify the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ myCred;
myCred = gcnew System::Net::NetworkCredential( UserName, SecurelyStoredPassword, Domain );
resolver->Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
XmlReader^ reader = xslt->Transform( doc, nullptr, resolver );
// Load the reader into a new document for more processing.
XmlDocument^ xmldoc = gcnew XmlDocument;
xmldoc->Load( reader );
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("titles.xsl");
// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument doc = new XPathDocument("books.xml");
XmlReader reader = xslt.Transform(doc, null, resolver);
// Load the reader into a new document for more processing.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("titles.xsl")
' Create a resolver and specify the necessary credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim myCred as System.Net.NetworkCredential
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain)
resolver.Credentials = myCred
' Transform thefile using the resolver. The resolver is used
' to process the XSLT document() function.
Dim doc as XPathDocument = new XPathDocument("books.xml")
Dim reader as XmlReader = xslt.Transform(doc, nothing, resolver)
' Load the reader into a new document for more processing.
Dim xmldoc as XmlDocument = new XmlDocument()
xmldoc.Load(reader)
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Элемент xsl:output
не поддерживается при выводе в объект XmlReader ( xsl:output
элемент игнорируется). Дополнительные сведения см. в выходных данных XslTransform .
Этот метод позволяет выполнять асинхронное преобразование исходного документа.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
- XmlSecureResolver
- Реализация поведения по выбору в классе XslTransform
- Результаты вывода XslTransform
Применяется к
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в TextWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет способ разрешения функции XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей.
Атрибут кодирования для xsl:output
элемента не поддерживается при выходе в .TextWriter Сведения о поддерживаемых атрибутах xsl:output
см. в выходных данных XslTransform.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, Stream)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в Stream.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- Stream
Поток, в который требуется направить вывод.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет способ разрешения функции XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
Применяется к
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Преобразует данные XML в XPathNavigator, используя указанные аргументы, и результат выводит в XmlWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- resolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
XmlResolver не кэшируется после завершения метода Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver).
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Примеры
В следующем примере загружается и редактируется XML-документ перед выполнением преобразования XSLT.
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "books.xml" );
// Modify the XML file.
XmlElement^ root = doc->DocumentElement;
root->FirstChild->LastChild->InnerText = "12.95";
// Create an XPathNavigator to use for the transform.
XPathNavigator^ nav = root->CreateNavigator();
// Transform the file.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( "output.xsl" );
XmlTextWriter^ writer = gcnew XmlTextWriter( "books.html", nullptr );
xslt->Transform( nav, nullptr, writer, nullptr);
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
// Modify the XML file.
XmlElement root = doc.DocumentElement;
root.FirstChild.LastChild.InnerText = "12.95";
// Create an XPathNavigator to use for the transform.
XPathNavigator nav = root.CreateNavigator();
// Transform the file.
XslTransform xslt = new XslTransform();
xslt.Load("output.xsl");
XmlTextWriter writer = new XmlTextWriter("books.html", null);
xslt.Transform(nav, null, writer, null);
Dim doc as XmlDocument = new XmlDocument()
doc.Load("books.xml")
' Modify the XML file.
Dim root as XmlElement = doc.DocumentElement
root.FirstChild.LastChild.InnerText = "12.95"
' Create an XPathNavigator to use for the transform.
Dim nav as XPathNavigator = root.CreateNavigator()
' Transform the file.
Dim xslt as XslTransform = new XslTransform()
xslt.Load("output.xsl")
Dim writer as XmlTextWriter = new XmlTextWriter("books.html", nothing)
xslt.Transform(nav,nothing, writer, nothing)
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Выбранные преобразования применяются к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не может получить доступ ко всем узлам загруженного документа. После выполнения преобразования останки XPathNavigator остаются в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Элемент xsl:output
не поддерживается при выходе в объект XmlWriter (xsl:output
игнорируется). Дополнительные сведения см. в выходных данных XslTransform .
См. также раздел
Применяется к
Transform(XPathNavigator, XsltArgumentList)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в XPathNavigator, используя указанные аргументы args
, результат выводит в XmlReader.
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList) As XmlReader
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
Возвращаемое значение
Объект XmlReader, содержащий результат преобразования.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей. Выбор преобразования применяется к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не будет обращаться ко всем узлам загруженного документа. После выполнения XPathNavigator преобразования остается в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Так как XmlReader предоставляет выходные данные только для чтения, xsl:output
элемент игнорируется. Дополнительные сведения см. в выходных данных XslTransform .
Этот метод позволяет выполнять асинхронное преобразование исходного документа.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет способ разрешения функции XSLT document(). Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в IXPathNavigable, используя указанные аргументы args
, результат выводит в XmlReader.
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList) As XmlReader
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В платформе .NET Framework это может быть либо объект XmlNode (обычно XmlDocument), либо объект XPathDocument, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
Возвращаемое значение
Объект XmlReader, содержащий результат преобразования.
- Атрибуты
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет способ разрешения функции XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
Они args
сопоставляются с элементами xsl:param
, определенными в таблице стилей. Элемент xsl:output
не поддерживается при выходе в объект XmlReader ( xsl:output
элемент игнорируется). Дополнительные сведения см. в выходных данных XslTransform .
Этот метод позволяет выполнять асинхронное преобразование исходного документа.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать XmlDocument содержащий только фрагмент узла и передать его XmlDocument в Transform метод.
В следующем примере выполняется преобразование фрагмента узла.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
В этом примере в качестве входных и выходных данных в консоли используются library.xml
файлы и print_root.xsl
файлы.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
См. также раздел
Применяется к
Transform(String, String)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML во входном файле и выводит результат в выходной файл.
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile);
public void Transform (string inputfile, string outputfile);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (string inputfile, string outputfile);
member this.Transform : string * string -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : string * string -> unit
Public Sub Transform (inputfile As String, outputfile As String)
Параметры
- inputfile
- String
URL-адрес исходного документа для преобразования.
- outputfile
- String
URL-адрес выходного файла.
- Атрибуты
Примеры
В следующем примере файл преобразуется books.xml
с помощью таблицы стилей output.xsl
и выводит результаты в books.html
файл.
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "output.xsl" );
// Transform the file.
xslt->Transform("books.xml","books.html");
//Create the XslTransform object.
XslTransform xslt = new XslTransform();
//Load the stylesheet.
xslt.Load("output.xsl");
//Transform the file.
xslt.Transform("books.xml", "books.html");
'Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
'Load the stylesheet.
xslt.Load("output.xsl")
'Transform the 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>
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Примечание
Этот метод устарел в версии 1.1 платформа .NET Framework. Параметр XmlResolver свойства определяет, как разрешается функция XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.
См. также раздел
Применяется к
Transform(XPathNavigator, XsltArgumentList, Stream)
Внимание!
You should pass XmlResolver to Transform() method
Преобразует данные XML в XPathNavigator, используя указанные аргументы args
, результат выводит в Stream.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream)
Параметры
- input
- XPathNavigator
Объект XPathNavigator, содержащий преобразуемые данные.
- args
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования.
- output
- Stream
Поток, в который требуется направить вывод.
- Атрибуты
Исключения
При обработке преобразования XSLT возникла ошибка.
Примечание. Это поведение было изменено по сравнению с предыдущими версиями. Исключение XsltException создается при использовании версии 1.1 или более ранней версии платформы Microsoft .NET Framework.
Комментарии
Примечание
Класс XslTransform устарел в платформа .NET Framework версии 2.0. Класс XslCompiledTransform является новым процессором XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform " и миграция из класса XslTransform.
XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна содержать объявление xmlns:xsl= http://www.w3.org/1999/XSL/Transform
пространства имен.
Они args
сопоставляются с xsl:param
элементами, определенными в таблице стилей. Выбранные преобразования применяются к документу в целом. Другими словами, если текущий узел установлен в дереве узлов, отличном от корневого узла документа, процесс преобразования не может получить доступ ко всем узлам загруженного документа. После выполнения преобразования останки XPathNavigator остаются в исходном состоянии. Это означает, что узел, текущий до процесса преобразования, остается текущим узлом после Transform вызова метода.
Сведения о поддерживаемых xsl:output
атрибутах см. в выходных данных XslTransform.
Примечание
Этот метод устарел. Параметр XmlResolver свойства определяет, как разрешается функция XSLT document()
. Рекомендуется использовать Transform метод, который принимает XmlResolver объект в качестве одного из его аргументов.