Procedure: Uw XslTransform-code migreren

De XslCompiledTransform klasse is XslTransform vervangen. Deze nieuwere klasse is ontworpen om zeer vergelijkbaar te zijn met XslTransform. Opmaakmodellen worden gecompileerd met behulp van de Load methode. Transformaties worden uitgevoerd met behulp van de Transform methode.

In de volgende procedures ziet u algemene XSLT-taken en vergelijkt u de code met behulp van de XslTransform klasse versus de XslCompiledTransform klasse.

Een bestand en uitvoer transformeren naar een URI

  • Code met behulp van de XslTransform klasse.

    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")
    
  • Code met behulp van de XslCompiledTransform klasse.

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

Een opmaakmodel compileren en een resolver gebruiken met standaardreferenties

  • Code met behulp van de XslTransform klasse.

    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)
    
  • Code met behulp van de XslCompiledTransform klasse.

    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)
    

Een XSLT-parameter gebruiken

  • Code met behulp van de XslTransform klasse.

    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)
    
  • Code met behulp van de XslCompiledTransform klasse.

    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)
    

XSLT-scripts inschakelen

Notitie

Scriptblokken worden alleen ondersteund in .NET Framework. Ze worden niet ondersteund op .NET Core of .NET 5 of hoger.

  • Code met behulp van de XslTransform klasse.

    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")
    
  • Code met behulp van de XslCompiledTransform klasse.

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

De resultaten laden in een DOM-object

  • Code met behulp van de XslTransform klasse.

    // 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)
    
  • Code met behulp van de XslCompiledTransform klasse.

    Notitie

    De XslCompiledTransform klasse heeft geen methode die de XSLT-transformatieresultaten retourneert als een XmlReader object. U kunt echter naar een XML-bestand uitvoeren en het XML-bestand in een ander object laden.

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

De resultaten streamen naar een ander gegevensarchief

  • Code met behulp van de XslTransform klasse.

    // 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)
    
  • Code met behulp van de XslCompiledTransform klasse.

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

Zie ook