Gör så här: Migrera din XslTransform-kod

Klassen XslCompiledTransform ersatte XslTransform klassen. Den här nyare klassen har utformats för att likna XslTransform. Formatmallar kompileras med hjälp av Load metoden . Transformeringar körs med hjälp av Transform metoden .

Följande procedurer visar vanliga XSLT-uppgifter och jämför koden med hjälp av klassen jämfört med XslTransform XslCompiledTransform klassen.

Transformera en fil och utdata till en URI

  • Kod med hjälp av XslTransform klassen.

    XslTransform xslt = new XslTransform();
    xslt.Load("output.xsl");
    xslt.Transform("books.xml", "books.html");
    
    Dim xslt As New XslTransform()
    xslt.Load("output.xsl")
    xslt.Transform("books.xml", "books.html")
    
  • Kod med hjälp av XslCompiledTransform klassen.

    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("output.xsl");
    xslt.Transform("books.xml", "books.html");
    
    Dim xslt As New XslCompiledTransform()
    xslt.Load("output.xsl")
    xslt.Transform("books.xml", "books.html")
    

Kompilera en formatmall och använda en matchare med standardautentiseringsuppgifter

  • Kod med hjälp av XslTransform klassen.

    XslTransform xslt = new XslTransform();
    XmlUrlResolver resolver = new XmlUrlResolver();
    resolver.Credentials = CredentialCache.DefaultCredentials;
    xslt.Load("sort.xsl", resolver);
    
    Dim xslt As New XslTransform()
    Dim resolver As New XmlUrlResolver()
    resolver.Credentials = CredentialCache.DefaultCredentials
    xslt.Load("sort.xsl", resolver)
    
  • Kod med hjälp av XslCompiledTransform klassen.

    XslCompiledTransform xslt = new XslCompiledTransform();
    XmlUrlResolver resolver = new XmlUrlResolver();
    resolver.Credentials = CredentialCache.DefaultCredentials;
    xslt.Load("sort.xsl", XsltSettings.Default, resolver);
    
    Dim xslt As New XslCompiledTransform()
    Dim resolver As New XmlUrlResolver()
    resolver.Credentials = CredentialCache.DefaultCredentials
    xslt.Load("sort.xsl", XsltSettings.Default, resolver)
    

Så här använder du en XSLT-parameter

  • Kod med hjälp av XslTransform klassen.

    XslTransform xslt = new XslTransform();
    xslt.Load("order.xsl");
    
    //Create the XsltArgumentList.
    XsltArgumentList argList = new XsltArgumentList();
    
    //Create a parameter which represents the current date and time.
    DateTime d = DateTime.Now;
    argList.AddParam("date", "", d.ToString());
    
    //Create the XmlTextWriter.
    XmlTextWriter writer = new XmlTextWriter("output.xml", null);
    
    //Transform the file.
    xslt.Transform(new XPathDocument(filename), argList, writer, null);
    
    Dim xslt As New XslTransform()
    xslt.Load("order.xsl")
    
    'Create the XsltArgumentList.
    Dim argList As New XsltArgumentList()
    
    'Create a parameter which represents the current date and time.
    Dim d As DateTime = DateTime.Now
    argList.AddParam("date", "", d.ToString())
    
    'Create the XmlTextWriter.
    Dim writer As New XmlTextWriter("output.xml", Nothing)
    
    'Transform the file.
    xslt.Transform(New XPathDocument(filename), argList, writer, Nothing)
    
  • Kod med hjälp av XslCompiledTransform klassen.

    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("order.xsl");
    
    // Create the XsltArgumentList.
    XsltArgumentList argList = new XsltArgumentList();
    
    // Create a parameter which represents the current date and time.
    DateTime d = DateTime.Now;
    argList.AddParam("date", "", d.ToString());
    
    // Create the XmlWriter.
    XmlWriter writer = XmlWriter.Create("output.xml", null);
    
    // Transform the file.
    xslt.Transform(new XPathDocument(filename), argList, writer);
    
    Dim xslt As New XslCompiledTransform()
    xslt.Load("order.xsl")
    
    ' Create the XsltArgumentList.
    Dim argList As New XsltArgumentList()
    
    ' Create a parameter which represents the current date and time.
    Dim d As DateTime = DateTime.Now
    argList.AddParam("date", "", d.ToString())
    
    ' Create the XmlWriter. 
    Dim writer As XmlWriter = XmlWriter.Create("output.xml", Nothing)
    
    ' Transform the file.
    xslt.Transform(New XPathDocument(filename), argList, writer)
    

Aktivera XSLT-skript

Kommentar

Skriptblock stöds endast i .NET Framework. De stöds inte på .NET Core eller .NET 5 eller senare.

  • Kod med hjälp av XslTransform klassen.

    XslTransform xslt = new XslTransform();
    xslt.Load("output.xsl");
    xslt.Transform("books.xml", "books.html");
    
    Dim xslt As New XslTransform()
    xslt.Load("output.xsl")
    xslt.Transform("books.xml", "books.html")
    
  • Kod med hjälp av XslCompiledTransform klassen.

    // Create the XsltSettings object with script enabled.
    XsltSettings settings = new XsltSettings(false,true);
    
    // Execute the transform.
    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("calc.xsl", settings, new XmlUrlResolver());
    xslt.Transform("books.xml", "books.html");
    
    ' Create the XsltSettings object with script enabled.
    Dim settings As New XsltSettings(False, True)
    
    ' Execute the transform.
    Dim xslt As New XslCompiledTransform()
    xslt.Load("calc.xsl", settings, New XmlUrlResolver())
    xslt.Transform("books.xml", "books.html")
    

Så här läser du in resultatet i ett DOM-objekt

  • Kod med hjälp av XslTransform klassen.

    // Execute the transformation.
    XslTransform xslt = new XslTransform();
    xslt.Load("output.xsl");
    XmlReader reader = xslt.Transform(new XPathDocument("books.xml"), null, new XmlUrlResolver());
    
    // Load the results into a DOM object.
    XmlDocument doc = new XmlDocument();
    doc.Load(reader);
    
    ' Execute the transformation.
    Dim xslt As New XslTransform()
    xslt.Load("output.xsl")
    Dim reader As XmlReader = xslt.Transform(New XPathDocument("books.xml"), Nothing, New XmlUrlResolver())
    
    ' Load the results into a DOM object.
    Dim doc As XmlDocument = New XmlDocument()
    doc.Load(reader)
    
  • Kod med hjälp av XslCompiledTransform klassen.

    Kommentar

    Klassen XslCompiledTransform har ingen metod som returnerar XSLT-transformeringsresultatet som ett XmlReader objekt. Du kan dock mata ut till en XML-fil och läsa in XML-filen i ett annat objekt.

    // Execute the transformation.
    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("output.xsl");
    xslt.Transform("books.xml", "output.xml");
    
    // Load the results into a DOM object.
    XmlDocument doc = new XmlDocument();
    doc.Load("output.xml");
    
    ' Execute the transformation.
    Dim xslt As New XslCompiledTransform()
    xslt.Load("output.xsl")
    xslt.Transform("books.xml", "output.xml")
    
    ' Load the results into a DOM object.
    Dim doc As XmlDocument = New XmlDocument()
    doc.Load("output.xml")
    

Så här strömmar du resultatet till ett annat datalager

  • Kod med hjälp av XslTransform klassen.

    // Execute the transformation.
    XslTransform xslt = new XslTransform();
    xslt.Load("output.xsl");
    XmlReader reader = xslt.Transform(new XPathDocument("books.xml"), null, new XmlUrlResolver());
    
    // Load the results into an XPathDocument object.
    XPathDocument doc = new XPathDocument(reader);
    
    ' Execute the transformation.
    Dim xslt As New XslTransform()
    xslt.Load("output.xsl")
    Dim reader As XmlReader = xslt.Transform(New XPathDocument("books.xml"), Nothing, New XmlUrlResolver())
    
    ' Load the results into an XPathDocument object.
    Dim doc As XPathDocument = New XPathDocument(reader)
    
  • Kod med hjälp av XslCompiledTransform klassen.

    // Execute the transformation.
    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("output.xsl");
    MemoryStream ms = new MemoryStream();
    xslt.Transform(new XPathDocument("books.xml"), null, ms);
    
    // Load the results into an XPathDocument object.
    ms.Seek(0, SeekOrigin.Begin);
    XPathDocument doc = new XPathDocument(ms);
    
    ' Execute the transformation.
    Dim xslt As New XslCompiledTransform()
    xslt.Load("output.xsl")
    Dim ms As MemoryStream = New MemoryStream()
    xslt.Transform(New XPathDocument("books.xml"), Nothing, ms)
    
    ' Load the results into an XPathDocument object.
    ms.Seek(0, SeekOrigin.Begin)
    Dim doc As XPathDocument = New XPathDocument(ms)
    

Se även