Transform-Methode (String, XsltArgumentList, XmlWriter)

XslCompiledTransform.Transform-Methode (String, XsltArgumentList, XmlWriter)

Aktualisiert: November 2007

Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.

Namespace:  System.Xml.Xsl
Assembly:  System.Xml (in System.Xml.dll)

public void Transform(
	string inputUri,
	XsltArgumentList arguments,
	XmlWriter results
)
public void Transform(
	String inputUri,
	XsltArgumentList arguments,
	XmlWriter results
)
public function Transform(
	inputUri : String, 
	arguments : XsltArgumentList, 
	results : XmlWriter
)

Parameter

inputUri
Typ: System.String
Der URI des Eingabedokuments.
arguments
Typ: System.Xml.Xsl.XsltArgumentList
Eine XsltArgumentList mit durch Namespaces gekennzeichneten Argumenten, die als Eingabe für die Transformation verwendet werden. Dieser Wert kann null sein.
results
Typ: System.Xml.XmlWriter
Der XmlWriter, an den die Ausgabe erfolgen soll.
Wenn das Stylesheet ein xsl:output-Element enthält, müssen Sie den XmlWriter mithilfe des XmlWriterSettings-Objekts erstellen, das von der OutputSettings-Eigenschaft zurückgegeben wird. Dieses Verfahren gewährleistet die richtigen Ausgabeeinstellungen des XmlWriter.

AusnahmeBedingung
ArgumentNullException

Der inputUri-Wert oder der results-Wert ist null.

XsltException

Bei der Ausführung der XSLT-Transformation ist ein Fehler aufgetreten.

DirectoryNotFoundException

Der inputtUri-Wert enthält einen Dateinamen oder ein Verzeichnis, das nicht gefunden werden kann.

WebException

Der inputUri-Wert kann nicht aufgelöst werden.

- oder -

Fehler bei der Verarbeitung der Anforderung.

UriFormatException

inputUri ist kein gültiger URI.

XmlException

Beim Laden des Eingabedokuments ist ein Analysefehler aufgetreten.

Diese Methode löst das Eingabedokument und alle im Stylesheet befindlichen Instanzen der document()-XSLT-Funktion anhand eines Standard-XmlUrlResolver ohne Benutzeranmeldeinformationen auf. Verwenden Sie die Überladung mit XmlResolver als einem der Argumente, und geben Sie einen XmlResolver mit den notwendigen Anmeldeinformationen an, wenn eine oder mehrere dieser Ressourcen auf einer Netzwerkressource gespeichert sind, für die eine Authentifizierung erforderlich ist.

Zum Laden des Eingabedokuments wird ein XmlReader mit Standardeinstellungen verwendet. Die DTD-Verarbeitung ist für den XmlReader deaktiviert. Wenn Sie die DTD-Verarbeitung benötigen, erstellen Sie einen XmlReader, bei dem dieses Feature aktiviert ist, und übergeben Sie diesen an die Transform-Methode.

Im folgenden Beispiel wird mit einem XsltArgumentList-Objekt ein Parameter erstellt, der das aktuelle Datum und die aktuelle Uhrzeit darstellt.

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.
     xslt.Transform("order.xml", xslArg, XmlWriter.Create("output.xml"));

  }
}


import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.XPath.*;
import System.Xml.Xsl.*;

public class Sample
{

    public static void main(String[] args)
    {
        // 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.get_Now();
        xslArg.AddParam("date", "", d.ToString());

        // Transform the file.
        xslt.Transform("order.xml", xslArg, XmlWriter.Create("output.xml"));

    } //main 
} //Sample


Im Beispiel werden die folgenden beiden Datendateien als Eingabe verwendet.

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>


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2016 Microsoft