XslCompiledTransform.Transform Metod

Definition

Kör XSLT-omvandlingen.

Överlagringar

Name Description
Transform(XmlReader, XsltArgumentList, TextWriter)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en TextWriter. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en TextWriter. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(IXPathNavigable, XsltArgumentList, Stream)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en dataström. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(XmlReader, XsltArgumentList, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(XmlReader, XsltArgumentList, Stream)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en dataström. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(String, String)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en fil.

Transform(String, XsltArgumentList, TextWriter)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en TextWriter.

Transform(String, XsltArgumentList, Stream)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet som ska strömmas. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(IXPathNavigable, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en XmlWriter.

Transform(XmlReader, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter.

Transform(String, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en XmlWriter.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument och XmlResolver löser XSLT-funktionendocument().

Transform(String, XsltArgumentList, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Kör transformeringen med hjälp av indatadokumentet som anges av IXPathNavigable objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument och XmlResolver löser XSLT-funktionendocument().

Kommentarer

Note

Det finns skillnader mellan XSLT som kompilerats i felsökningsläge och XSLT som kompilerats i versionsläge. I vissa situationer utlöser formatmallar som kompilerats i felsökningsläge inte fel under Load, men misslyckas senare under Transform. Samma formatmall som kompileras i versionsläge misslyckas under Load. Ett exempel på ett sådant beteende är när en variabel som inte är av en noduppsättningstyp tilldelas ett uttryck där en noduppsättning krävs.

Transform(XmlReader, XsltArgumentList, TextWriter)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en TextWriter. XsltArgumentList Innehåller ytterligare körningsargument.

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)

Parametrar

input
XmlReader

En XmlReader som innehåller indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
TextWriter

Till TextWriter vilken du vill mata ut.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Kommentarer

Om formatmallen innehåller en XSLT-funktion document() löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument.

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)

Parametrar

input
IXPathNavigable

Ett objekt som implementerar IXPathNavigable gränssnittet. I Microsoft .NET Framework kan detta antingen vara en XmlNode (vanligtvis en XmlDocument) eller en XPathDocument som innehåller de data som ska transformeras.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Kommentarer

Om XSLT-funktionen document() är aktiverad löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Den här metoden stöder inte elementet xsl:strip-space . Om den kompilerade formatmallen innehåller elementet xsl:strip-space måste du använda den Transform överlagring som tar ett XmlReader som indataargument.

Gränssnittet IXPathNavigable implementeras i klasserna XmlNode och XPathDocument . Dessa klasser representerar en minnesintern cache med XML-data.

  • Klassen XmlNode baseras på W3C Document Object Model (DOM) och innehåller redigeringsfunktioner.

  • Klassen XPathDocument är ett skrivskyddat datalager baserat på XPath-datamodellen. XPathDocument är den rekommenderade klassen för XSLT-bearbetning. Det ger snabbare prestanda jämfört med XmlNode klassen.

Transformeringar gäller för dokumentet som helhet. Med andra ord, om du skickar in en annan nod än dokumentrotnoden hindrar detta inte omvandlingsprocessen från att komma åt alla noder i det inlästa dokumentet. Om du vill transformera ett nodfragment måste du skapa ett objekt som bara innehåller nodfragmentet och skicka objektet till Transform -metoden. Mer information finns i Så här: Transformera ett nodfragment.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en TextWriter. XsltArgumentList Innehåller ytterligare körningsargument.

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)

Parametrar

input
IXPathNavigable

Ett objekt som implementerar IXPathNavigable gränssnittet. I Microsoft .NET Framework kan detta antingen vara en XmlNode (vanligtvis en XmlDocument) eller en XPathDocument som innehåller de data som ska transformeras.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
TextWriter

Till TextWriter vilken du vill mata ut.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Kommentarer

Om XSLT-funktionen document() är aktiverad löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Den här metoden stöder inte elementet xsl:strip-space . Om den kompilerade formatmallen innehåller elementet xsl:strip-space måste du använda den Transform överlagring som tar ett XmlReader som indataargument.

Gränssnittet IXPathNavigable implementeras i klasserna XmlNode och XPathDocument . Dessa klasser representerar en minnesintern cache med XML-data.

  • Klassen XmlNode baseras på W3C Document Object Model (DOM) och innehåller redigeringsfunktioner.

  • Klassen XPathDocument är ett skrivskyddat datalager baserat på XPath-datamodellen. XPathDocument är den rekommenderade klassen för XSLT-bearbetning. Det ger snabbare prestanda jämfört med XmlNode klassen.

Transformeringar gäller för dokumentet som helhet. Med andra ord, om du skickar in en annan nod än dokumentrotnoden hindrar detta inte omvandlingsprocessen från att komma åt alla noder i det inlästa dokumentet. Om du vill transformera ett nodfragment måste du skapa ett objekt som bara innehåller nodfragmentet och skicka objektet till Transform -metoden. Mer information finns i Så här: Transformera ett nodfragment.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(IXPathNavigable, XsltArgumentList, Stream)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en dataström. XsltArgumentList Innehåller ytterligare körningsargument.

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)

Parametrar

input
IXPathNavigable

Ett objekt som implementerar IXPathNavigable gränssnittet. I Microsoft .NET Framework kan detta antingen vara en XmlNode (vanligtvis en XmlDocument) eller en XPathDocument som innehåller de data som ska transformeras.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
Stream

Den ström som du vill mata ut till.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Exempel

I följande exempel körs en XSLT-transformering och utdata till en 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

Kommentarer

Om XSLT-funktionen document() är aktiverad löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Den här metoden stöder inte elementet xsl:strip-space . Om den kompilerade formatmallen innehåller elementet xsl:strip-space måste du använda den Transform överlagring som tar ett XmlReader som indataargument.

Gränssnittet IXPathNavigable implementeras i klasserna XmlNode och XPathDocument . Dessa klasser representerar en minnesintern cache med XML-data.

  • Klassen XmlNode baseras på W3C Document Object Model (DOM) och innehåller redigeringsfunktioner.

  • Klassen XPathDocument är ett skrivskyddat datalager baserat på XPath-datamodellen. XPathDocument är den rekommenderade klassen för XSLT-bearbetning. Det ger snabbare prestanda jämfört med XmlNode klassen.

Transformeringar gäller för dokumentet som helhet. Med andra ord, om du skickar in en annan nod än dokumentrotnoden hindrar detta inte omvandlingsprocessen från att komma åt alla noder i det inlästa dokumentet. Om du vill transformera ett nodfragment måste du skapa ett objekt som bara innehåller nodfragmentet och skicka objektet till Transform -metoden. Mer information finns i Så här: Transformera ett nodfragment.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(XmlReader, XsltArgumentList, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument.

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)

Parametrar

input
XmlReader

En XmlReader som innehåller indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Kommentarer

Om formatmallen innehåller en XSLT-funktion document() löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(XmlReader, XsltArgumentList, Stream)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en dataström. XsltArgumentList Innehåller ytterligare körningsargument.

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)

Parametrar

input
XmlReader

En XmlReader som innehåller indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
Stream

Den ström som du vill mata ut till.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Kommentarer

Om formatmallen innehåller en XSLT-funktion document() löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(String, String)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en fil.

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)

Parametrar

inputUri
String

URI:n för indatadokumentet.

resultsFile
String

URI:n för utdatafilen.

Undantag

Värdet inputUri eller resultsFile är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Det går inte att hitta indatadokumentet.

Värdet inputUri eller resultsFile innehåller ett filnamn eller en katalog kan inte hittas.

Värdet inputUri eller resultsFile kan inte matchas.

-eller-

Ett fel uppstod när begäran bearbetades.

inputUri eller resultsFile är inte en giltig URI.

Ett parsningsfel uppstod när indatadokumentet lästes in.

Exempel

I följande exempel körs en transformering och utdata till en fil.

// 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")

Exemplet använder följande två indatafiler:

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>

Kommentarer

Den här metoden använder ett standardvärde XmlUrlResolver utan användarautentiseringsuppgifter för att lösa in- och utdatadokumenten. Om någon av dessa resurser finns på en nätverksresurs som kräver autentisering använder du den överlagring som tar ett XmlResolver av argumenten och anger en XmlResolver med nödvändiga autentiseringsuppgifter.

En XmlReader med standardinställningar används för att läsa in indatadokumentet. DTD-bearbetning är inaktiverad på XmlReader. Om du behöver DTD-bearbetning skapar du en XmlReader med den här funktionen aktiverad och skickar den till Transform metoden.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(String, XsltArgumentList, TextWriter)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en 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);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As TextWriter)

Parametrar

inputUri
String

URI:n för indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
TextWriter

Till TextWriter vilken du vill mata ut.

Undantag

Värdet inputUri eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Värdet inputUri innehåller ett filnamn eller en katalog som inte kan hittas.

Det går inputUri inte att matcha värdet.

-eller-

Ett fel uppstod när begäran bearbetades.

inputUri är inte en giltig URI.

Ett parsningsfel uppstod när indatadokumentet lästes in.

Exempel

I följande exempel körs en XSLT-transformering och en sträng matas ut.

// 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()

Kommentarer

Den här metoden använder ett standardvärde XmlUrlResolver utan användarautentiseringsuppgifter för att matcha indatadokumentet och eventuella instanser av XSLT-funktionen document() som finns i formatmallen. Om någon av dessa resurser finns på en nätverksresurs som kräver autentisering använder du den överlagring som tar ett XmlResolver av argumenten och anger en XmlResolver med nödvändiga autentiseringsuppgifter.

En XmlReader med standardinställningar används för att läsa in indatadokumentet. DTD-bearbetning är inaktiverad på XmlReader. Om du behöver DTD-bearbetning skapar du en XmlReader med den här funktionen aktiverad och skickar den till Transform metoden.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(String, XsltArgumentList, Stream)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet som ska strömmas. XsltArgumentList Innehåller ytterligare körningsargument.

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);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As Stream)

Parametrar

inputUri
String

URI:n för indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
Stream

Den ström som du vill mata ut till.

Undantag

Värdet inputUri eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Värdet inputUri innehåller ett filnamn eller en katalog som inte kan hittas.

Det går inputUri inte att matcha värdet.

-eller-

Ett fel uppstod när begäran bearbetades.

inputUri är inte en giltig URI.

Ett parsningsfel uppstod när indatadokumentet lästes in.

Kommentarer

Den här metoden använder ett standardvärde XmlUrlResolver utan användarautentiseringsuppgifter för att matcha indatadokumentet och eventuella instanser av XSLT-funktionen document() som finns i formatmallen. Om någon av dessa resurser finns på en nätverksresurs som kräver autentisering använder du den överlagring som tar ett XmlResolver av argumenten och anger en XmlResolver med nödvändiga autentiseringsuppgifter.

En XmlReader med standardinställningar används för att läsa in indatadokumentet. DTD-bearbetning är inaktiverad på XmlReader. Om du behöver DTD-bearbetning skapar du en XmlReader med den här funktionen aktiverad och skickar den till Transform metoden.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(IXPathNavigable, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en 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)

Parametrar

input
IXPathNavigable

Ett objekt som implementerar IXPathNavigable gränssnittet. I Microsoft .NET Framework kan detta antingen vara en XmlNode (vanligtvis en XmlDocument) eller en XPathDocument som innehåller de data som ska transformeras.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Exempel

I följande exempel körs en XSLT-transformering och utdata till ett XmlWriter objekt.

// 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()

Kommentarer

Om XSLT-funktionen document() är aktiverad löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Den här metoden stöder inte elementet xsl:strip-space . Om den kompilerade formatmallen innehåller elementet xsl:strip-space måste du använda den Transform överlagring som tar ett XmlReader som indataargument.

Gränssnittet IXPathNavigable implementeras i klasserna XmlNode och XPathDocument . Dessa klasser representerar en minnesintern cache med XML-data.

  • Klassen XmlNode baseras på W3C Document Object Model (DOM) och innehåller redigeringsfunktioner.

  • Klassen XPathDocument är ett skrivskyddat datalager baserat på XPath-datamodellen. XPathDocument är den rekommenderade klassen för XSLT-bearbetning. Det ger snabbare prestanda jämfört med XmlNode klassen.

Transformeringar gäller för dokumentet som helhet. Med andra ord, om du skickar in en annan nod än dokumentrotnoden hindrar detta inte omvandlingsprocessen från att komma åt alla noder i det inlästa dokumentet. Om du vill transformera ett nodfragment måste du skapa ett objekt som bara innehåller nodfragmentet och skicka objektet till Transform -metoden. Mer information finns i Så här: Transformera ett nodfragment.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(XmlReader, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en 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)

Parametrar

input
XmlReader

Innehåller XmlReader indatadokumentet.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Exempel

I följande exempel transformeras den första boken i filen 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()

Kommentarer

Om XSLT-funktionen document() är aktiverad löses den med en XmlUrlResolver utan användarautentiseringsuppgifter. Om den externa resursen finns på en nätverksresurs som kräver autentisering använder du överlagringen som tar ett XmlResolver av argumenten och anger ett XmlResolver med nödvändiga autentiseringsuppgifter.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(String, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en 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)

Parametrar

inputUri
String

URI:n för indatadokumentet.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

Undantag

Värdet inputUri eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Värdet inputUri innehåller ett filnamn eller en katalog som inte kan hittas.

Det går inputUri inte att matcha värdet.

-eller-

Ett fel uppstod när begäran bearbetades.

inputUri är inte en giltig URI.

Ett parsningsfel uppstod när indatadokumentet lästes in.

Exempel

I följande exempel körs en XSLT-transformering och utdata till ett XmlWriter objekt.

// 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()

Kommentarer

Den här metoden använder ett standardvärde XmlUrlResolver utan användarautentiseringsuppgifter för att matcha indatadokumentet och eventuella instanser av XSLT-funktionen document() som finns i formatmallen. Om någon av dessa resurser finns på en nätverksresurs som kräver autentisering använder du den överlagring som tar ett XmlResolver av argumenten och anger en XmlResolver med nödvändiga autentiseringsuppgifter.

En XmlReader med standardinställningar används för att läsa in indatadokumentet. DTD-bearbetning är inaktiverad på XmlReader. Om du behöver DTD-bearbetning skapar du en XmlReader med den här funktionen aktiverad och skickar den till Transform metoden.

Den här metoden stöder inte elementet xsl:strip-space . Om den kompilerade formatmallen innehåller elementet xsl:strip-space måste du använda den Transform överlagring som tar ett XmlReader som indataargument.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument och XmlResolver löser XSLT-funktionendocument().

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)

Parametrar

input
XmlReader

En XmlReader som innehåller indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

documentResolver
XmlResolver

Används XmlResolver för att lösa XSLT-funktionen document() . Om detta är nulldocument() löses inte funktionen.

Undantag

Värdet input eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Exempel

I följande exempel används en XmlSecureResolver för att lösa XSLT-funktionen 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

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(String, XsltArgumentList, XmlWriter)

Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument.

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);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As XmlWriter)

Parametrar

inputUri
String

URI:n för indatadokumentet.

arguments
XsltArgumentList

En XsltArgumentList som innehåller de namnområdeskvalificerade argument som används som indata till transformeringen. Det här värdet kan vara null.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från OutputSettings egenskapen. Detta säkerställer att XmlWriter har rätt utdatainställningar.

Undantag

Värdet inputUri eller results är null.

Ett fel uppstod när XSLT-transformeringen skulle köras.

Värdet inputUri innehåller ett filnamn eller en katalog som inte kan hittas.

Det går inputUri inte att matcha värdet.

-eller-

Ett fel uppstod när begäran bearbetades.

inputUri är inte en giltig URI.

Ett parsningsfel uppstod när indatadokumentet lästes in.

Exempel

I följande exempel används ett XsltArgumentList objekt för att skapa en parameter som representerar aktuellt datum och tid.

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

I exemplet används följande två datafiler som indata.

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>

Kommentarer

Den här metoden använder ett standardvärde XmlUrlResolver utan användarautentiseringsuppgifter för att matcha indatadokumentet och eventuella instanser av XSLT-funktionen document() som finns i formatmallen. Om någon av dessa resurser finns på en nätverksresurs som kräver autentisering använder du den överlagring som tar ett XmlResolver av argumenten och anger en XmlResolver med nödvändiga autentiseringsuppgifter.

En XmlReader med standardinställningar används för att läsa in indatadokumentet. DTD-bearbetning är inaktiverad på XmlReader. Om du behöver DTD-bearbetning skapar du en XmlReader med den här funktionen aktiverad och skickar den till Transform metoden.

Se även

  • Att använda klassen XslCompiledTransform

Gäller för

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Kör transformeringen med hjälp av indatadokumentet som anges av IXPathNavigable objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument och XmlResolver löser XSLT-funktionendocument().

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)

Parametrar

input
IXPathNavigable

Dokumentet som ska transformeras som anges av IXPathNavigable objektet.

arguments
XsltArgumentList

Argumentlista som XsltArgumentList.

results
XmlWriter

Till XmlWriter vilken du vill mata ut.

Om formatmallen innehåller ett xsl:output element bör du skapa XmlWriter med hjälp av objektet XmlWriterSettings som returneras från egenskapen OutputSettings . Detta säkerställer att XmlWriter har rätt utdatainställningar.

documentResolver
XmlResolver

Används XmlResolver för att lösa XSLT-funktionen document() . Om detta är nulldocument() löses inte funktionen.

Gäller för