Бөлісу құралы:


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 document().

Transform(String, XsltArgumentList, XmlWriter)

Выполняет преобразование с помощью входного документа, указанного в URI, и выводит результат в XmlWriter. XsltArgumentList предоставляет дополнительные аргументы для работы в режиме реального времени.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Выполняет преобразование с помощью входного документа, указанного в объекте IXPathNavigable, и выводит результат в XmlWriter. XsltArgumentList содержит дополнительные аргументы для работы во время выполнения, а XmlResolver разрешает функцию XSLT document().

Комментарии

Примечание

Ниже приведены различия между 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)

Параметры

input
XmlReader

Объект XmlReader, содержащий входной документ.

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)

Параметры

input
XmlReader

Объект XmlReader, содержащий входной документ.

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)

Параметры

input
XmlReader

Объект XmlReader, содержащий входной документ.

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)

Выполняет преобразование с помощью входного документа, указанного в объекте 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)

Параметры

input
XmlReader

Объект XmlReader, содержащий входной документ.

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)

Параметры

input
XmlReader

Объект XmlReader, содержащий входной документ.

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() не разрешается.

Применяется к