Útmutató: Az XslTransform-kód migrálása

Az XslCompiledTransform osztály lecserélte az osztályt XslTransform . Ez az újabb osztály úgy lett kialakítva, hogy nagyon hasonló legyen.XslTransform A stíluslapok fordítása a Load módszerrel történik. Az átalakítások végrehajtása a Transform módszerrel történik.

Az alábbi eljárások általános XSLT-feladatokat mutatnak be, és összehasonlítják a kódot az osztály és az XslTransform XslCompiledTransform osztály használatával.

Fájl és kimenet átalakítása URI-vá

  • Kód az osztály használatával XslTransform .

    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")
    
  • Kód az osztály használatával XslCompiledTransform .

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

Stíluslap fordítása és az alapértelmezett hitelesítő adatokkal rendelkező feloldó használata

  • Kód az osztály használatával XslTransform .

    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)
    
  • Kód az osztály használatával XslCompiledTransform .

    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)
    

XSLT-paraméter használata

  • Kód az osztály használatával XslTransform .

    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)
    
  • Kód az osztály használatával XslCompiledTransform .

    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-szkriptek engedélyezése

Feljegyzés

A szkriptblokkok csak .NET-keretrendszer támogatottak. A .NET Core vagy a .NET 5 vagy újabb verziók nem támogatják őket.

  • Kód az osztály használatával XslTransform .

    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")
    
  • Kód az osztály használatával XslCompiledTransform .

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

Az eredmények betöltése DOM-objektumba

  • Kód az osztály használatával XslTransform .

    // 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)
    
  • Kód az osztály használatával XslCompiledTransform .

    Feljegyzés

    Az XslCompiledTransform osztály nem rendelkezik olyan metódussal, amely objektumként XmlReader adja vissza az XSLT-átalakítási eredményeket. Egy XML-fájlba azonban kimenetet adhat, és betöltheti az XML-fájlt egy másik objektumba.

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

Az eredmények streamelése egy másik adattárba

  • Kód az osztály használatával XslTransform .

    // 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)
    
  • Kód az osztály használatával XslCompiledTransform .

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

Lásd még