L'objet IXSLTemplate est utilisé pour les modèles XSLT(Extensible Stylesheet Language Transformations) cachées.
Set Objet_Template = _
Server.CreateObject("MSXML2.XSLTemplate")
Avant la version 2.6 de l'analyseur XML de Microsoft, chaque appel vers la méthode transformNode ou transformNodeToObject devait recompiler la feuille de style car celle-ci était simplement passée comme un objet IXMLDOMNode. Désormais, il est possible d'augmenter le performances en cachant la feuille de style compilée et en la réutilisant avec l'objet IXSLTemplate.
Pour mettre en cache une feuille de style compilée, il faut la charger à l'intérieur d'un objet IXSLTemplate. Ce-dernier est une unité d'exécution libre (free-threaded) et est apatride, ainsi il peut être stocké dans l'état d'application ASP partagé. Alors pour transformer un document donné employant ce modèle, il est nécessaire de créer un objet IXSLProcessor employant la méthode createProcessor. L'objet IXSLProcessor stocke l'état pour que celui-ci transforme l'appel et possède un modèle rental-threading.
Set Objet_Style = _
Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
Objet_Style.Load "style.xsl"
Set Objet_Template.stylesheet = Objet_Style
Set Objet_Processor = Objet_Template.createProcessor()
Objet_Processor.input = Objet_Document
Objet_Processor.Transform
Response.Write Objet_Processor.output
Les Propriétés
| Propriété |
|---|
| Description |
| Set Objet_Node = Objet_Template.stylesheet |
| fournit les feuilles de style XSL à compiler à l'intérieur d'un modèle XSL. |
| Méthode |
|---|
| Description |
| Set Objet_Processor = Objet_Template.createProcessor |
| crée un objet XSLProcessor de modèle de location qui utilise le IXSLTemplate. |
<%
Dim Objet_Document
Dim Objet_Style
Dim Objet_Template
Dim Objet_Processor
Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument")
Set Objet_Style = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
Set Objet_Template = Server.CreateObject("MSXML2.XSLTemplate")
Objet_Document.async = False
Objet_Document.Load Server.mapPath("logitheque.xml")
Set Objet_Erreur = Objet_Document.parseError
If Objet_Erreur.errorCode <> 0 Then
Response.Write "<h3>Le chargement a échoué.</h3>" _
& "<br>Une erreur d'analyse s'est produite." _
& "<br>Code : " & Objet_Erreur.errorCode _
& "<br>Raison : " & Objet_Erreur.reason _
& "<br>Texte : " & Objet_Erreur.srcText _
& "<br>URL : " & Objet_Erreur.url _
& "<br>Position : " & Objet_Erreur.filePos _
& "<br>Ligne : " & Objet_Erreur.line _
& "<br>Colonne : " & Objet_Erreur.linePos
Else
Objet_Style.async = False
Objet_Style.Load Server.mapPath("logitheque.xsl")
Set Objet_Template.stylesheet = Objet_Style
Set Objet_Processor = Objet_Template.createProcessor()
Objet_Processor.input = Objet_Document
Objet_Processor.addParameter "num", 6
Objet_Processor.Transform
Response.Write Objet_Processor.output
End If
Set Objet_Document = Nothing
Set Objet_Style = Nothing
Set Objet_Template = Nothing
Set Objet_Processor = Nothing
%> |