XslTransform.Transform Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Transformuje data XML pomocí načtené šablony stylů XSLT.
Přetížení
Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaných args a vypíše výsledek na XmlWriterhodnotu . |
Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(String, String, XmlResolver) |
Transformuje data XML ve vstupním souboru a vypíše výsledek do výstupního souboru. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaných args a vypíše výsledek do XmlWriter. |
Transform(XPathNavigator, XsltArgumentList) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(IXPathNavigable, XsltArgumentList) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(String, String) |
Zastaralé.
Transformuje data XML ve vstupním souboru a vypíše výsledek do výstupního souboru. |
Transform(XPathNavigator, XsltArgumentList, Stream) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Transformuje data XML pomocí XPathNavigator zadaného args
a výstupu výsledku XmlReaderna hodnotu .
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
Parametry
- input
- XPathNavigator
Obsahující XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
- resolver
- XmlResolver
Používá XmlResolver se k vyřešení funkce document()
XSLT. Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(XPathNavigator, XsltArgumentList, XmlResolver) v mezipaměti.
Návraty
Obsahuje XmlReader výsledky transformace.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na jiném stromu uzlů než na kořenovém uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane původní stav. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform volání metody.
Vzhledem k tomu, že XmlReader poskytuje výstup jen pro čtení, xsl:output
je prvek ignorován. Další informace najdete v tématu Výstupy z XslTransformu .
Tato metoda umožňuje provádět asynchronní transformaci zdrojového dokumentu.
Viz také
Platí pro
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Transformuje data XML pomocí XPathNavigator zadaného args
a výstupu výsledek do TextWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
Parametry
- input
- XPathNavigator
Obsahuje XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- output
- TextWriter
To TextWriter , do kterého chcete výstup provést.
- resolver
- XmlResolver
Slouží XmlResolver k vyřešení funkce XSLT document().
Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) v mezipaměti.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na strom uzlu kromě kořenového uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane v původním stavu. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform zavolání metody.
Atribut kódování elementu xsl:output
není podporován při výstupu TextWriterdo . Podrobnosti o podporovaných atributech najdete v xsl:output
části Výstupy z objektu XslTransform.
Viz také
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementace volitelného chování ve třídě XslTransform
Platí pro
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Transformuje data XML pomocí XPathNavigator zadaného args
a výstupu výsledek do Stream.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
Parametry
- input
- XPathNavigator
Obsahuje XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- output
- Stream
Datový proud, do kterého chcete výstup provést.
- resolver
- XmlResolver
Slouží XmlResolver k vyřešení funkce XSLT document().
Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) v mezipaměti.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Příklady
Následující příklad načte tabulku zákazníka do XmlDataDocument transformace XSLT, která načte data zákazníků do tabulky HTML. Příklad používá databázi Microsoft SQL Server 2000 Northwind.
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create a DataSet and load it with customer data.
DataSet dsNorthwind = new DataSet();
String sConnect;
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
SqlConnection nwconnect = new SqlConnection(sConnect);
String sCommand = "Select * from Customers where Region='WA'";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect);
myDataAdapter.Fill(dsNorthwind,"Customers");
// Load the DataSet into an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument(dsNorthwind);
// Create the XslTransform object and load the stylesheet.
XslTransform xsl = new XslTransform();
xsl.Load("customers.xsl");
// Create an XPathNavigator to use in the transform.
XPathNavigator nav = doc.CreateNavigator();
// Create a FileStream object.
FileStream fs = new FileStream("cust.html", FileMode.Create);
// Transform the data.
xsl.Transform(nav, null, fs, null);
}
}
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
public class Sample
public shared sub Main()
' Create a DataSet and load it with customer data.
Dim dsNorthwind as DataSet = new DataSet()
Dim sConnect as String
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim nwconnect as SqlConnection
nwconnect = new SqlConnection(sConnect)
Dim sCommand as String = "Select * from Customers where Region='WA'"
Dim myDataAdapter as SqlDataAdapter
myDataAdapter = new SqlDataAdapter(sCommand, nwconnect)
myDataAdapter.Fill(dsNorthwind,"Customers")
' Load the DataSet into an XmlDataDocument.
Dim doc as XmlDataDocument = new XmlDataDocument(dsNorthwind)
' Create the XslTransform object and load the stylesheet.
Dim xsl as XslTransform = new XslTransform()
xsl.Load("customers.xsl")
' Create an XPathNavigator to use in the transform.
Dim nav as XPathNavigator = doc.CreateNavigator()
' Create a FileStream object.
Dim fs as FileStream = new FileStream("cust.html", FileMode.Create)
' Transform the data.
xsl.Transform(nav, nothing, fs, nothing)
end sub
end class
V příkladu se customers.xsl
soubor používá jako vstup.
<!-- Stylesheet to sort customers by city-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="NewDataSet">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>City</TD>
</TR>
<xsl:apply-templates select="Customers">
<xsl:sort select="City"/>
</xsl:apply-templates>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Customers">
<TR>
<TD><xsl:value-of select="CompanyName"/></TD>
<TD><xsl:value-of select="ContactName"/></TD>
<TD><xsl:value-of select="City"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na strom uzlu kromě kořenového uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane původní stav. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform zavolání metody.
Podrobnosti o podporovaných atributech najdete v xsl:output
části Výstupy z objektu XslTransform.
Viz také
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementace volitelného chování ve třídě XslTransform
Platí pro
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek do XmlWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď XmlNode (obvykle ), XmlDocumentnebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- resolver
- XmlResolver
Slouží XmlResolver k vyřešení funkce XSLT document().
Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) v mezipaměti.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Příklady
Následující příklad transformuje dokument XML na dokument HTML. Zobrazí isBN, název a cenu pro každou knihu v tabulce.
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;
int main()
{
String^ filename = "books.xml";
String^ stylesheet = "output.xsl";
//Load the stylesheet.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( stylesheet );
//Load the file to transform.
XPathDocument^ doc = gcnew XPathDocument( filename );
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
//Transform the file and send the output to the console.
xslt->Transform(doc,nullptr,writer,nullptr);
writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample
{
private const String filename = "books.xml";
private const String stylesheet = "output.xsl";
public static void Main()
{
//Load the stylesheet.
XslTransform xslt = new XslTransform();
xslt.Load(stylesheet);
//Load the file to transform.
XPathDocument doc = new XPathDocument(filename);
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
//Transform the file and send the output to the console.
xslt.Transform(doc, null, writer, null);
writer.Close();
}
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
Public Class Sample
Private Shared filename1 As String = "books.xml"
Private Shared stylesheet1 As String = "output.xsl"
Public Shared Sub Main()
'Load the stylesheet.
Dim xslt As New XslTransform()
xslt.Load(stylesheet1)
'Load the file to transform.
Dim doc As New XPathDocument(filename1)
'Create an XmlTextWriter which outputs to the console.
Dim writer As New XmlTextWriter(Console.Out)
'Transform the file and send the output to the console.
xslt.Transform(doc, Nothing, writer, Nothing)
writer.Close()
End Sub
End Class
Ukázka používá následující dva vstupní soubory.
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>
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Prvek xsl:output
není podporován při výstupu do objektu XmlWriter (xsl:output
je ignorován). Další informace najdete v tématu Výstupy z objektu XslTransform .
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
V příkladu se jako library.xml
vstup a print_root.xsl
výstupy používají následující položky do konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
- XmlSecureResolver
- Credentials
- Implementace volitelného chování ve třídě XslTransform
- Výstupy z XslTransform
Platí pro
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek na TextWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď ( XmlNode obvykle an XmlDocument), nebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
- output
- TextWriter
Do TextWriter kterého chcete výstup provést.
- resolver
- XmlResolver
Používá XmlResolver se k vyřešení funkce document()
XSLT. Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) v mezipaměti.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Příklady
Následující příklad transformuje soubor XML a vypíše řetězec HTML. StringWriter Třídy StringReader se používají ke čtení a zápisu řetězců.
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample {
public static void Main() {
// Create a string containing the XSLT stylesheet.
String xsltString =
@"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='bookstore'>
<HTML>
<HEAD>
<TITLE>Book Titles</TITLE>
</HEAD>
<BODY>
<xsl:apply-templates select='book'/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='book'>
<P><xsl:value-of select='title'/></P>
</xsl:template>
</xsl:stylesheet>";
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
StringReader rdr = new StringReader(xsltString);
xslt.Load(new XPathDocument(rdr), null, null);
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform(new XPathDocument("books.xml"), null, writer, null);
HTMLoutput = writer.ToString();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
public class Sample
public shared sub Main()
' Create a string containing the XSLT stylesheet.
Dim xsltString as String
xsltString = "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>" & _
" <xsl:template match='bookstore'>" & _
" <HTML>" & _
" <HEAD>" & _
" <TITLE>Book Titles</TITLE>" & _
" </HEAD>" & _
" <BODY>" & _
" <xsl:apply-templates select='book'/>" & _
" </BODY>" & _
" </HTML>" & _
" </xsl:template>" & _
" <xsl:template match='book'>" & _
" <P><xsl:value-of select='title'/></P>" & _
" </xsl:template>" & _
" </xsl:stylesheet>"
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
Dim rdr as StringReader = new StringReader(xsltString)
xslt.Load(new XPathDocument(rdr), nothing, nothing)
' Transform the file and output an HTML string.
Dim HTMLoutput as string
Dim writer as StringWriter = new StringWriter()
xslt.Transform(new XPathDocument("books.xml"), nothing, writer, nothing)
HTMLoutput = writer.ToString()
end sub
end class
V příkladu se books.xml
soubor používá jako vstup.
<?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>
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů.
Atribut kódování prvku xsl:output
není při výstupu TextWriterdo prvku podporován . Projděte si výstupy z XslTransformu pro konkrétní atributy, které xsl:output
jsou podporovány.
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci na fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
Příklad používá library.xml
jako vstup a print_root.xsl
výstupy následující příkazy konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
- XmlSecureResolver
- Credentials
- Implementace volitelného chování ve třídě XslTransform
- Výstupy z XslTransform
Platí pro
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek na Stream.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď ( XmlNode obvykle an XmlDocument), nebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
- output
- Stream
Datový proud, do kterého chcete výstup provést.
- resolver
- XmlResolver
Používá XmlResolver se k vyřešení funkce document()
XSLT. Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform v mezipaměti.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Příklady
Následující příklad provede transformaci na ASP.NET stránce.
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Load the XML document to transform.
XPathDocument doc = new XPathDocument(Server.MapPath("books.xml"));
// Load the stylesheet and perform the transform.
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath("output.xsl"));
xslt.Transform(doc, null, Response.OutputStream, null);
}
</script>
</html>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="VB" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
' Load the XML document to transform.
dim doc as XPathDocument = new XPathDocument(Server.MapPath("books.xml"))
' Load the stylesheet and perform the transform.
dim xslt as XslTransform = new XslTransform()
xslt.Load(Server.MapPath("output.xsl"))
xslt.Transform(doc, nothing, Response.OutputStream, nothing)
end sub
</script>
</html>
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů.
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci na fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
Příklad používá library.xml
jako vstup a print_root.xsl
výstupy následující příkazy konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
- XmlSecureResolver
- Credentials
- Implementace volitelného chování ve třídě XslTransform
- Výstupy z XslTransform
Platí pro
Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí XPathNavigator zadaných args a vypíše výsledek na XmlWriterhodnotu .
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter)
Parametry
- input
- XPathNavigator
Obsahující XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na jiném stromu uzlů než na kořenovém uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane původní stav. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform volání metody.
Prvek xsl:output
není podporován při výstupu do objektu XmlWriter (xsl:output
je ignorován). Další informace najdete v tématu Výstupy z XslTransformu .
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob vyřešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform XmlResolver , která přebírá objekt jako jeden z jeho argumentů.
Viz také
Platí pro
Transform(XPathNavigator, XsltArgumentList, TextWriter)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí XPathNavigator zadaného args
a výstupu výsledek do TextWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter)
Parametry
- input
- XPathNavigator
Obsahuje XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- output
- TextWriter
To TextWriter , do kterého chcete výstup provést.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na strom uzlu kromě kořenového uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane v původním stavu. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform zavolání metody.
Atribut kódování elementu xsl:output
není podporován při výstupu TextWriterdo . Podrobnosti o podporovaných atributech najdete v xsl:output
části Výstupy z objektu XslTransform.
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob vyřešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform XmlResolver , která přebírá objekt jako jeden z jeho argumentů.
Viz také
Platí pro
Transform(String, String, XmlResolver)
Transformuje data XML ve vstupním souboru a vypíše výsledek do výstupního souboru.
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile, System::Xml::XmlResolver ^ resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver? resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver resolver);
member this.Transform : string * string * System.Xml.XmlResolver -> unit
Public Sub Transform (inputfile As String, outputfile As String, resolver As XmlResolver)
Parametry
- inputfile
- String
Adresa URL zdrojového dokumentu, který se má transformovat.
- outputfile
- String
Adresa URL výstupního souboru.
- resolver
- XmlResolver
Používá XmlResolver se k vyřešení funkce document()
XSLT. Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform v mezipaměti.
Příklady
Následující příklad provede transformaci XSLT a výstupy do souboru. Používá se XmlUrlResolver k překladu externích prostředků s výchozími přihlašovacími údaji. Podrobnosti viz DefaultCredentials.
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "http://myServer/data/authors.xsl", resolver );
// Transform the file.
xslt->Transform( "books.xml", "books.html", resolver );
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver);
// Transform the file.
xslt.Transform("books.xml", "books.html", resolver);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver)
' Transform the file.
xslt.Transform("books.xml", "titles.xml", resolver)
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Viz také
Platí pro
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek do XmlWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter)
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď XmlNode (obvykle ), XmlDocumentnebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob řešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform , která přebírá XmlResolver objekt jako jeden z jeho argumentů.
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Prvek xsl:output
není podporován při výstupu do objektu XmlWriter (xsl:output
je ignorován). Další informace najdete v tématu Výstupy z objektu XslTransform .
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
V příkladu se jako library.xml
vstup a print_root.xsl
výstupy používají následující položky do konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
Platí pro
Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek do XmlReader.
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď XmlNode (obvykle ), XmlDocumentnebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- resolver
- XmlResolver
Slouží XmlResolver k vyřešení funkce XSLT document().
Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(IXPathNavigable, XsltArgumentList, XmlResolver) v mezipaměti.
Návraty
Obsahuje XmlReader výsledky transformace.
Příklady
Následující příklad transformuje dokument XML a výstup výsledky do XmlReader
. K XmlUrlResolver zpracování všech funkcí XSLT document()
se používá pověření s potřebnými přihlašovacími údaji.
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "titles.xsl" );
// Create a resolver and specify the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ myCred;
myCred = gcnew System::Net::NetworkCredential( UserName, SecurelyStoredPassword, Domain );
resolver->Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
XmlReader^ reader = xslt->Transform( doc, nullptr, resolver );
// Load the reader into a new document for more processing.
XmlDocument^ xmldoc = gcnew XmlDocument;
xmldoc->Load( reader );
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("titles.xsl");
// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument doc = new XPathDocument("books.xml");
XmlReader reader = xslt.Transform(doc, null, resolver);
// Load the reader into a new document for more processing.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("titles.xsl")
' Create a resolver and specify the necessary credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim myCred as System.Net.NetworkCredential
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain)
resolver.Credentials = myCred
' Transform thefile using the resolver. The resolver is used
' to process the XSLT document() function.
Dim doc as XPathDocument = new XPathDocument("books.xml")
Dim reader as XmlReader = xslt.Transform(doc, nothing, resolver)
' Load the reader into a new document for more processing.
Dim xmldoc as XmlDocument = new XmlDocument()
xmldoc.Load(reader)
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Prvek xsl:output
není podporován při výstupu do objektu XmlReader xsl:output
(element je ignorován). Další informace najdete v tématu Výstupy z objektu XslTransform .
Tato metoda umožňuje provádět asynchronní transformaci zdrojového dokumentu.
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
V příkladu se jako library.xml
vstup a print_root.xsl
výstupy používají následující položky do konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
Platí pro
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek na TextWriter.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter)
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď ( XmlNode obvykle an XmlDocument), nebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
- output
- TextWriter
Do TextWriter kterého chcete výstup provést.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob vyřešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform XmlResolver , která přebírá objekt jako jeden z jeho argumentů.
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů.
Atribut kódování prvku xsl:output
není při výstupu TextWriterdo prvku podporován . Projděte si výstupy z XslTransformu pro konkrétní atributy, které xsl:output
jsou podporovány.
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
V příkladu se jako library.xml
vstup a print_root.xsl
výstupy používají následující položky do konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
Platí pro
Transform(IXPathNavigable, XsltArgumentList, Stream)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledek na Stream.
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream)
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď ( XmlNode obvykle an XmlDocument), nebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
- output
- Stream
Datový proud, do kterého chcete výstup provést.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob vyřešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform XmlResolver , která přebírá objekt jako jeden z jeho argumentů.
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů.
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci na fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
Příklad používá library.xml
jako vstup a print_root.xsl
výstupy následující příkazy konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
Platí pro
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Transformuje data XML pomocí XPathNavigator zadaných args a vypíše výsledek do XmlWriter.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
Parametry
- input
- XPathNavigator
Obsahuje XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- resolver
- XmlResolver
Slouží XmlResolver k vyřešení funkce XSLT document().
Pokud ano null
, funkce document()
se nevyřeší.
Po XmlResolver dokončení metody není uložena Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) v mezipaměti.
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Příklady
Následující příklad načte a upraví dokument XML před provedením transformace XSLT.
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "books.xml" );
// Modify the XML file.
XmlElement^ root = doc->DocumentElement;
root->FirstChild->LastChild->InnerText = "12.95";
// Create an XPathNavigator to use for the transform.
XPathNavigator^ nav = root->CreateNavigator();
// Transform the file.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( "output.xsl" );
XmlTextWriter^ writer = gcnew XmlTextWriter( "books.html", nullptr );
xslt->Transform( nav, nullptr, writer, nullptr);
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
// Modify the XML file.
XmlElement root = doc.DocumentElement;
root.FirstChild.LastChild.InnerText = "12.95";
// Create an XPathNavigator to use for the transform.
XPathNavigator nav = root.CreateNavigator();
// Transform the file.
XslTransform xslt = new XslTransform();
xslt.Load("output.xsl");
XmlTextWriter writer = new XmlTextWriter("books.html", null);
xslt.Transform(nav, null, writer, null);
Dim doc as XmlDocument = new XmlDocument()
doc.Load("books.xml")
' Modify the XML file.
Dim root as XmlElement = doc.DocumentElement
root.FirstChild.LastChild.InnerText = "12.95"
' Create an XPathNavigator to use for the transform.
Dim nav as XPathNavigator = root.CreateNavigator()
' Transform the file.
Dim xslt as XslTransform = new XslTransform()
xslt.Load("output.xsl")
Dim writer as XmlTextWriter = new XmlTextWriter("books.html", nothing)
xslt.Transform(nav,nothing, writer, nothing)
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na strom uzlu kromě kořenového uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane v původním stavu. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform volání metody.
Prvek xsl:output
není podporován při výstupu do objektu XmlWriter (xsl:output
je ignorován). Další informace najdete v tématu Výstupy z XslTransformu .
Viz také
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementace volitelného chování ve třídě XslTransform
Platí pro
Transform(XPathNavigator, XsltArgumentList)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí XPathNavigator zadaného args
a výstupu výsledku XmlReaderna hodnotu .
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList) As XmlReader
Parametry
- input
- XPathNavigator
Obsahující XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahující XsltArgumentList argumenty kvalifikované k oboru názvů používané jako vstup do transformace.
Návraty
Obsahuje XmlReader výsledky transformace.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Jedná se o změnu chování ze starších verzí. Vyvolá se, XsltException pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na jiném stromu uzlů než na kořenovém uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane původní stav. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform volání metody.
Vzhledem k tomu, že XmlReader poskytuje výstup jen pro čtení, xsl:output
je prvek ignorován. Další informace najdete v tématu Výstupy z XslTransformu .
Tato metoda umožňuje provádět asynchronní transformaci zdrojového dokumentu.
Poznámka
Tato metoda je zastaralá. Nastavení XmlResolver vlastnosti určuje, jak je vyřešena funkce document() XSLT. Doporučeným postupem je použít metodu Transform XmlResolver , která přebírá objekt jako jeden z jeho argumentů.
Viz také
Platí pro
Transform(IXPathNavigable, XsltArgumentList)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí IXPathNavigable zadaného args
a výstupu výsledku XmlReaderna hodnotu .
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList) As XmlReader
Parametry
- input
- IXPathNavigable
Objekt implementuje IXPathNavigable rozhraní. V rozhraní .NET Framework to může být buď XmlNode (obvykle ), XmlDocumentnebo XPathDocument obsahující data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
Návraty
Obsahuje XmlReader výsledky transformace.
- Atributy
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace ze třídy XslTransform.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob vyřešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform XmlResolver , která přebírá objekt jako jeden z jeho argumentů.
Odpovídá args
prvkům definovaným xsl:param
v šabloně stylů. Prvek xsl:output
není podporován při výstupu do objektu XmlReader ( xsl:output
prvek je ignorován). Další informace najdete v tématu Výstupy z XslTransformu .
Tato metoda umožňuje provádět asynchronní transformaci zdrojového dokumentu.
Transformace se vztahují na dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Pokud chcete transformovat fragment uzlu, musíte vytvořit XmlDocument pouze fragment uzlu a předat XmlDocument ho Transform metodě.
Následující příklad provede transformaci na fragmentu uzlu.
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
Příklad používá library.xml
jako vstup a print_root.xsl
výstupy následující příkazy konzoly.
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
Viz také
Platí pro
Transform(String, String)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML ve vstupním souboru a vypíše výsledek do výstupního souboru.
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile);
public void Transform (string inputfile, string outputfile);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (string inputfile, string outputfile);
member this.Transform : string * string -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : string * string -> unit
Public Sub Transform (inputfile As String, outputfile As String)
Parametry
- inputfile
- String
Adresa URL zdrojového dokumentu, který se má transformovat.
- outputfile
- String
Adresa URL výstupního souboru.
- Atributy
Příklady
Následující příklad transformuje books.xml
soubor pomocí output.xsl
šablony stylů a vypíše výsledky do books.html
souboru.
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "output.xsl" );
// Transform the file.
xslt->Transform("books.xml","books.html");
//Create the XslTransform object.
XslTransform xslt = new XslTransform();
//Load the stylesheet.
xslt.Load("output.xsl");
//Transform the file.
xslt.Transform("books.xml", "books.html");
'Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
'Load the stylesheet.
xslt.Load("output.xsl")
'Transform the file.
xslt.Transform("books.xml", "books.html")
Ukázka používá následující dva vstupní soubory:
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>
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Poznámka
Tato metoda je zastaralá ve verzi 1.1 rozhraní .NET Framework. Nastavení XmlResolver vlastnosti určuje způsob řešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform , která přebírá XmlResolver objekt jako jeden z jeho argumentů.
Viz také
Platí pro
Transform(XPathNavigator, XsltArgumentList, Stream)
Upozornění
You should pass XmlResolver to Transform() method
Transformuje data XML pomocí XPathNavigator zadaného args
a výstupu výsledek do Stream.
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream)
Parametry
- input
- XPathNavigator
Obsahuje XPathNavigator data, která se mají transformovat.
- args
- XsltArgumentList
Obsahuje XsltArgumentList kvalifikované argumenty oboru názvů, které se používají jako vstup pro transformaci.
- output
- Stream
Datový proud, do kterého chcete výstup provést.
- Atributy
Výjimky
Při zpracování transformace XSLT došlo k chybě.
Poznámka: Toto je změna chování ze starších verzí. Vyvolá XsltException se, pokud používáte rozhraní Microsoft .NET Framework verze 1.1 nebo starší.
Poznámky
Poznámka
Třída XslTransform je zastaralá v rozhraní .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z XslTransform třídy.
XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí obsahovat deklaraci xmlns:xsl= http://www.w3.org/1999/XSL/Transform
oboru názvů .
Porovná args
se s xsl:param
prvky definovanými v šabloně stylů. Výběry transformace se vztahují na dokument jako celek. Jinými slovy, pokud je aktuální uzel nastavený na strom uzlu kromě kořenového uzlu dokumentu, nezabrání procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Po provedení XPathNavigator transformace zůstane původní stav. To znamená, že uzel, který je aktuální před procesem transformace, zůstane aktuální uzel po Transform zavolání metody.
Podrobnosti o podporovaných atributech najdete v xsl:output
části Výstupy z objektu XslTransform.
Poznámka
Tato metoda je nyní zastaralá. Nastavení XmlResolver vlastnosti určuje způsob řešení funkce XSLT document()
. Doporučeným postupem je použít metodu Transform , která přebírá XmlResolver objekt jako jeden z jeho argumentů.