XslCompiledTransform.Transform Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет преобразование XSLT.
Перегрузки
Transform(XmlReader, XsltArgumentList, TextWriter) |
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи TextWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в средство записи XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в средство записи TextWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в поток. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(XmlReader, XsltArgumentList, XmlWriter) |
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(XmlReader, XsltArgumentList, Stream) |
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в поток. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(String, String) |
Выполняет преобразование с помощью входного документа, указанного по URI, и выводит результат в файл. |
Transform(String, XsltArgumentList, TextWriter) |
Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в TextWriter. |
Transform(String, XsltArgumentList, Stream) |
Выполняет преобразование с помощью входного документа, указанного по URI, и выводит результат в поток. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(IXPathNavigable, XmlWriter) |
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в средство записи XmlWriter. |
Transform(XmlReader, XmlWriter) |
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи XmlWriter. |
Transform(String, XmlWriter) |
Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в XmlWriter. |
Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи XmlWriter. XsltArgumentList предоставляет дополнительные аргументы времени выполнения, а XmlResolver разрешает функцию XSLT |
Transform(String, XsltArgumentList, XmlWriter) |
Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в XmlWriter. XsltArgumentList содержит дополнительные аргументы для работы во время выполнения, а XmlResolver разрешает функцию XSLT |
Комментарии
Примечание
Ниже приведены различия между XSLT, скомпилированными в режиме отладки и режиме выпуска. В некоторых случаях таблицы стилей, скомпилированные в режиме отладки, не выдают ошибки во время вызова Load, но завершаются ошибкой позже, при вызове метода Transform. Та же таблица стилей, скомпилированная в режиме выпуска, завершается ошибкой во время вызова Load. Например, это может произойти в том случае, если переменная, не принадлежащая к типу набора узлов, присваивается выражению, где требуется набор узлов.
Transform(XmlReader, XsltArgumentList, TextWriter)
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи TextWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As TextWriter)
Параметры
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Комментарии
Если таблица стилей включает функцию XSLT document()
, она разрешается с помощью XmlUrlResolver учетных данных пользователя без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в средство записи XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В Microsoft .NET Framework это может быть либо XmlNode (обычно XmlDocument), либо XPathDocument, содержащий преобразуемые данные.
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Комментарии
Если функция XSLT document()
включена, она разрешается с помощью XmlUrlResolver без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, которая принимает XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Этот метод не поддерживает xsl:strip-space
элемент. Если скомпилированная таблица стилей включала xsl:strip-space
элемент, необходимо использовать перегрузку Transform , которая принимает XmlReader в качестве входного аргумента.
Интерфейс IXPathNavigable реализован в классах XmlNode и XPathDocument. Эти классы представляют хранящийся в памяти кэш XML-данных.
Класс XmlNode основан на модели W3C DOM и позволяет вносить изменения.
Класс XPathDocument представляет собой доступное только для чтения хранилище данных на основе модели данных XPath. Класс XPathDocument рекомендуется для обработки XSLT. Он обеспечивает более высокую производительность по сравнению с классом XmlNode.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать объект, содержащий только фрагмент этого узла, и передать его методу Transform. Дополнительные сведения см. в разделе Практическое руководство. Преобразование фрагмента узла.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в средство записи TextWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As TextWriter)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В Microsoft .NET Framework это может быть либо XmlNode (обычно XmlDocument), либо XPathDocument, содержащий преобразуемые данные.
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Комментарии
Если функция XSLT document()
включена, она разрешается с помощью XmlUrlResolver без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, которая принимает XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Этот метод не поддерживает xsl:strip-space
элемент. Если скомпилированная таблица стилей включала xsl:strip-space
элемент, необходимо использовать перегрузку Transform , которая принимает XmlReader в качестве входного аргумента.
Интерфейс IXPathNavigable реализован в классах XmlNode и XPathDocument. Эти классы представляют хранящийся в памяти кэш XML-данных.
Класс XmlNode основан на модели W3C DOM и позволяет вносить изменения.
Класс XPathDocument представляет собой доступное только для чтения хранилище данных на основе модели данных XPath. Класс XPathDocument рекомендуется для обработки XSLT. Он обеспечивает более высокую производительность по сравнению с классом XmlNode.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать объект, содержащий только фрагмент этого узла, и передать его методу Transform. Дополнительные сведения см. в разделе Практическое руководство. Преобразование фрагмента узла.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, Stream)
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в поток. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As Stream)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В Microsoft .NET Framework это может быть либо XmlNode (обычно XmlDocument), либо XPathDocument, содержащий преобразуемые данные.
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- Stream
Поток, в который требуется направить вывод.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Примеры
В следующем примере выполняется преобразование XSLT и выходные данные в .FileStream
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the FileStream.
using (FileStream fs = new FileStream(@"c:\data\output.xml", FileMode.Create))
{
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), null, fs);
}
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the FileStream.
Using fs As New FileStream("c:\data\output.xml", FileMode.Create)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), Nothing, fs)
End Using
Комментарии
Если функция XSLT document()
включена, она разрешается с помощью XmlUrlResolver без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, которая принимает XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Этот метод не поддерживает xsl:strip-space
элемент. Если скомпилированная таблица стилей включала xsl:strip-space
элемент, необходимо использовать перегрузку Transform , которая принимает XmlReader в качестве входного аргумента.
Интерфейс IXPathNavigable реализован в классах XmlNode и XPathDocument. Эти классы представляют хранящийся в памяти кэш XML-данных.
Класс XmlNode основан на модели W3C DOM и позволяет вносить изменения.
Класс XPathDocument представляет собой доступное только для чтения хранилище данных на основе модели данных XPath. Класс XPathDocument рекомендуется для обработки XSLT. Он обеспечивает более высокую производительность по сравнению с классом XmlNode.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать объект, содержащий только фрагмент этого узла, и передать его методу Transform. Дополнительные сведения см. в разделе Практическое руководство. Преобразование фрагмента узла.
См. также раздел
Применяется к
Transform(XmlReader, XsltArgumentList, XmlWriter)
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter)
Параметры
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Комментарии
Если таблица стилей включает функцию XSLT document()
, она разрешается с помощью XmlUrlResolver без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, которая принимает XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
См. также раздел
Применяется к
Transform(XmlReader, XsltArgumentList, Stream)
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в поток. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As Stream)
Параметры
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- Stream
Поток, в который требуется направить вывод.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Комментарии
Если таблица стилей включает функцию XSLT document()
, она разрешается с помощью XmlUrlResolver учетных данных пользователя без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
См. также раздел
Применяется к
Transform(String, String)
Выполняет преобразование с помощью входного документа, указанного по URI, и выводит результат в файл.
public:
void Transform(System::String ^ inputUri, System::String ^ resultsFile);
public void Transform (string inputUri, string resultsFile);
member this.Transform : string * string -> unit
Public Sub Transform (inputUri As String, resultsFile As String)
Параметры
- inputUri
- String
URI входного документа.
- resultsFile
- String
URI выходного файла.
Исключения
Параметру inputUri
или resultsFile
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Не удается найти входной документ документа.
Значение inputUri
или resultsFile
включает имя файла или каталог, который не удается найти.
Не удается разрешить значение inputUri
или resultsFile
.
-или- При обработке этого запроса возникла ошибка.
Параметр inputUri
или resultsFile
не является допустимым именем URI.
Произошла ошибка анализа при загрузке входного документа.
Примеры
В следующем примере выполняется преобразование и выходные данные в файл.
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
В примере используются следующие два входных файла:
books.xml
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
output.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Комментарии
Этот метод использует значение по умолчанию XmlUrlResolver без учетных данных пользователя для разрешения входных и выходных документов. Если любой из этих ресурсов находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Для XmlReader загрузки входного документа используется параметр с параметрами по умолчанию. Обработка DTD отключена на .XmlReader Если требуется обработка DTD, создайте функцию с включенной XmlReader функцией и передайте ее в Transform метод.
См. также раздел
Применяется к
Transform(String, XsltArgumentList, TextWriter)
Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в TextWriter.
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As TextWriter)
Параметры
- inputUri
- String
URI входного документа.
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- TextWriter
Модуль записи TextWriter, в который нужно направить выход.
Исключения
Параметру inputUri
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Значение inputUri
включает имя файла или каталог, который не удается найти.
Значение inputUri
не удается разрешить.
-или- При обработке этого запроса возникла ошибка.
inputUri
не является допустимым URI.
Произошла ошибка анализа при загрузке входного документа.
Примеры
В следующем примере выполняется преобразование XSLT и выводится строка.
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("HTML_out.xsl");
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform("books.xml", null, writer);
HTMLoutput = writer.ToString();
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("HTML_out.xsl")
' Transform the file and output an HTML string.
Dim HTMLoutput As String
Dim writer As New StringWriter()
xslt.Transform("books.xml", Nothing, writer)
HTMLoutput = writer.ToString()
writer.Close()
Комментарии
Этот метод использует значение по умолчанию XmlUrlResolver без учетных данных пользователя для разрешения входного документа и всех экземпляров функции XSLT document()
, найденных в таблице стилей. Если любой из этих ресурсов находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Для XmlReader загрузки входного документа используется параметр с параметрами по умолчанию. Обработка DTD отключена на .XmlReader Если требуется обработка DTD, создайте функцию с включенной XmlReader функцией и передайте ее в Transform метод.
См. также раздел
Применяется к
Transform(String, XsltArgumentList, Stream)
Выполняет преобразование с помощью входного документа, указанного по URI, и выводит результат в поток. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As Stream)
Параметры
- inputUri
- String
URI входного документа.
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- Stream
Поток, в который требуется направить вывод.
Исключения
Параметру inputUri
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Значение inputUri
включает имя файла или каталог, который не удается найти.
Значение inputUri
не удается разрешить.
-или- При обработке этого запроса возникла ошибка.
inputUri
не является допустимым URI.
Произошла ошибка анализа при загрузке входного документа.
Комментарии
Этот метод использует значение по умолчанию XmlUrlResolver без учетных данных пользователя для разрешения входного документа и всех экземпляров функции XSLT document()
, найденных в таблице стилей. Если любой из этих ресурсов находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Для XmlReader загрузки входного документа используется параметр с параметрами по умолчанию. Обработка DTD отключена на .XmlReader Если требуется обработка DTD, создайте функцию с включенной XmlReader функцией и передайте ее в Transform метод.
См. также раздел
Применяется к
Transform(IXPathNavigable, XmlWriter)
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в средство записи XmlWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, results As XmlWriter)
Параметры
- input
- IXPathNavigable
Объект, реализующий интерфейс IXPathNavigable. В Microsoft .NET Framework это может быть либо XmlNode (обычно XmlDocument), либо XPathDocument, содержащий преобразуемые данные.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Примеры
В следующем примере выполняется преобразование XSLT и выходные данные объекта XmlWriter .
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), writer)
writer.Close()
Комментарии
Если функция XSLT document()
включена, она разрешается с использованием XmlUrlResolver учетных данных пользователя без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Этот метод не поддерживает xsl:strip-space
элемент. Если скомпилированная таблица стилей включала xsl:strip-space
элемент, необходимо использовать перегрузку Transform , которая принимает XmlReader в качестве входного аргумента.
Интерфейс IXPathNavigable реализован в классах XmlNode и XPathDocument. Эти классы представляют хранящийся в памяти кэш XML-данных.
Класс XmlNode основан на модели W3C DOM и позволяет вносить изменения.
Класс XPathDocument представляет собой доступное только для чтения хранилище данных на основе модели данных XPath. Класс XPathDocument рекомендуется для обработки XSLT. Он обеспечивает более высокую производительность по сравнению с классом XmlNode.
Преобразования применяются к документу в целом. Иными словами, если передать узел, отличный от корневого узла документа, это не помешает процессу преобразования обратиться ко всем узлам загружаемого документа. Чтобы преобразовать фрагмент узла, необходимо создать объект, содержащий только фрагмент этого узла, и передать его методу Transform. Дополнительные сведения см. в разделе Практическое руководство. Преобразование фрагмента узла.
См. также раздел
Применяется к
Transform(XmlReader, XmlWriter)
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, results As XmlWriter)
Параметры
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Примеры
В следующем примере первая книга преобразуется в файл books.xml.
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
XmlReader reader = XmlReader.Create("books.xml");
reader.MoveToContent();
// Execute the transformation.
xslt.Transform(reader, writer);
writer.Close();
reader.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
Dim reader As XmlReader = XmlReader.Create("books.xml")
reader.MoveToContent()
' Execute the transformation.
xslt.Transform(reader, writer)
writer.Close()
reader.Close()
Комментарии
Если функция XSLT document()
включена, она разрешается с использованием XmlUrlResolver учетных данных пользователя без учетных данных пользователя. Если внешний ресурс находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
См. также раздел
Применяется к
Transform(String, XmlWriter)
Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в XmlWriter.
public:
void Transform(System::String ^ inputUri, System::Xml::XmlWriter ^ results);
public void Transform (string inputUri, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, results As XmlWriter)
Параметры
- inputUri
- String
URI входного документа.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
Исключения
Параметру inputUri
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Значение inputUri
включает имя файла или каталог, который не удается найти.
Значение inputUri
не удается разрешить.
-или- При обработке этого запроса возникла ошибка.
inputUri
не является допустимым URI.
Произошла ошибка анализа при загрузке входного документа.
Примеры
В следующем примере выполняется преобразование XSLT и выходные данные объекта XmlWriter .
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform("books.xml", writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform("books.xml", writer)
writer.Close()
Комментарии
Этот метод использует значение по умолчанию XmlUrlResolver без учетных данных пользователя для разрешения входного документа и всех экземпляров функции XSLT document()
, найденных в таблице стилей. Если любой из этих ресурсов находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Для XmlReader загрузки входного документа используется параметр с параметрами по умолчанию. Обработка DTD отключена на .XmlReader Если требуется обработка DTD, создайте функцию с включенной XmlReader функцией и передайте ее в Transform метод.
Этот метод не поддерживает xsl:strip-space
элемент. Если скомпилированная таблица стилей включала xsl:strip-space
элемент, необходимо использовать перегрузку Transform , которая принимает XmlReader в качестве входного аргумента.
См. также раздел
Применяется к
Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)
Выполняет преобразование с помощью входного документа, указанного в объекте XmlReader, и выводит результат в средство записи XmlWriter. XsltArgumentList предоставляет дополнительные аргументы времени выполнения, а XmlResolver разрешает функцию XSLT document()
.
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
Параметры
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
- documentResolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.
Исключения
Параметру input
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Примеры
В следующем примере используется XmlSecureResolver для разрешения функции XSLT document()
.
// Create a resolver and specify the necessary credentials.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver);
// Transform the file.
using (XmlReader reader = XmlReader.Create("books.xml"))
{
using (XmlWriter writer = XmlWriter.Create("output.xml"))
{
xslt.Transform(reader, null, writer, resolver);
}
}
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
Dim settings As New XsltSettings()
settings.EnableDocumentFunction = True
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver)
' Transform the file.
Using reader As XmlReader = XmlReader.Create("books.xml")
Using writer As XmlWriter = XmlWriter.Create("output.xml")
xslt.Transform(reader, Nothing, writer, resolver)
End Using
End Using
См. также раздел
Применяется к
Transform(String, XsltArgumentList, XmlWriter)
Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As XmlWriter)
Параметры
- inputUri
- String
URI входного документа.
- arguments
- XsltArgumentList
Объект XsltArgumentList, содержащий имена аргументов с указанием пространства имен, используемый в качестве входных данных для преобразования. Это значение может быть равно null
.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
Исключения
Параметру inputUri
или results
задано значение null
.
При выполнении преобразования XSLT произошла ошибка.
Значение inputtUri
включает имя файла или каталог, который не удается найти.
Значение inputUri
не удается разрешить.
-или- При обработке этого запроса возникла ошибка.
inputUri
не является допустимым URI.
Произошла ошибка анализа при загрузке входного документа.
Примеры
В следующем примере объект используется XsltArgumentList для создания параметра, представляющего текущую дату и время.
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create the XslCompiledTransform and load the stylesheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("order.xsl");
// Create the XsltArgumentList.
XsltArgumentList xslArg = new XsltArgumentList();
// Create a parameter which represents the current date and time.
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
// Transform the file.
using (XmlWriter w = XmlWriter.Create("output.xml"))
{
xslt.Transform("order.xml", xslArg, w);
}
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Public Class Sample
Public Shared Sub Main()
' Create the XslCompiledTransform and load the stylesheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("order.xsl")
' Create the XsltArgumentList.
Dim xslArg As New XsltArgumentList()
' Create a parameter which represents the current date and time.
Dim d As DateTime = DateTime.Now
xslArg.AddParam("date", "", d.ToString())
Using w As XmlWriter = XmlWriter.Create("output.xml")
' Transform the file.
xslt.Transform("order.xml", xslArg, w)
End Using
End Sub
End Class
В этом примере в качестве входных данных используются следующие два файла данных.
order.xml
<!--Represents a customer order-->
<order>
<book ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<cd ISBN='2-3631-4'>
<title>Americana</title>
<price>16.95</price>
</cd>
</order>
order.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="date"/>
<xsl:template match="/">
<order>
<date><xsl:value-of select="$date"/></date>
<total><xsl:value-of select="sum(//price)"/></total>
</order>
</xsl:template>
</xsl:stylesheet>
Комментарии
Этот метод использует значение по умолчанию XmlUrlResolver без учетных данных пользователя для разрешения входного документа и всех экземпляров функции XSLT document()
, найденных в таблице стилей. Если любой из этих ресурсов находится в сетевом ресурсе, требующий проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.
Для XmlReader загрузки входного документа используется параметр с параметрами по умолчанию. Обработка DTD отключена на .XmlReader Если требуется обработка DTD, создайте функцию с включенной XmlReader функцией и передайте ее в Transform метод.
См. также раздел
Применяется к
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в XmlWriter. XsltArgumentList содержит дополнительные аргументы для работы во время выполнения, а XmlResolver разрешает функцию XSLT document()
.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
Параметры
- input
- IXPathNavigable
Документ для преобразования, заданный в объекте IXPathNavigable.
- arguments
- XsltArgumentList
Список аргументов в виде XsltArgumentList.
- results
- XmlWriter
Модуль записи XmlWriter, в который нужно направить выход.
Если таблица стилей содержит элемент xsl:output
, необходимо создать XmlWriter с использованием объекта XmlWriterSettings, возвращенного из свойства OutputSettings. Это гарантирует правильность параметров выходных данных для объекта XmlWriter.
- documentResolver
- XmlResolver
Объект XmlResolver, используемый для разрешения функции XSLT document()
. Если значение равно null
, функция document()
не разрешается.