Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La Transform méthode accepte trois types d’entrée pour le document source : un objet qui implémente l’interface IXPathNavigable , un XmlReader objet qui lit le document source ou un URI de chaîne.
Remarque
La XslCompiledTransform classe conserve l’espace blanc par défaut. Cela est conforme à la section 3.4 de la recommandation W3C XSLT 1.0.
Interface IXPathNavigable
L'interface IXPathNavigable est implémentée dans les classes XmlNode et XPathDocument. Ces classes représentent un cache en mémoire des données XML.
La XmlNode classe est basée sur le modèle DOM (Document Object Model) W3C et inclut des fonctionnalités de modification.
La XPathDocument classe est un magasin de données en lecture seule basé sur le modèle de données XPath. XPathDocument est la classe recommandée pour le traitement XSLT. Elle offre des performances plus rapides par rapport à la XmlNode classe.
Remarque
Les transformations s’appliquent au document dans son ensemble. En d’autres termes, si vous transmettez un nœud autre que le nœud racine du document, cela n’empêche pas le processus de transformation d’accéder à tous les nœuds du document chargé. Pour transformer un fragment de nœud, vous devez créer un objet contenant uniquement le fragment de nœud et passer cet objet à la Transform méthode. Pour plus d’informations, consultez Guide pratique pour transformer un fragment de nœud.
L’exemple suivant utilise la XslCompiledTransform.Transform méthode pour transformer le fichier books.xml en fichier books.html à l’aide de la feuille de style transform.xsl. Vous trouverez les fichiers books.xml et transform.xsl dans cette rubrique : Comment : effectuer une transformation XSLT à l’aide d’un assembly.
// Open books.xml as an XPathDocument.
XPathDocument doc = new XPathDocument("books.xml");
// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform(doc, writer);
' Open books.xml as an XPathDocument.
Dim doc As XPathDocument = New XPathDocument("books.xml")
' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
'Execute the transformation.
transform.Transform(doc, writer)
Objet XmlReader
La méthode Transform charge à partir du nœud actuel de l'objet XmlReader via tous ses enfants. Cela vous permet d’utiliser une partie d’un document comme document de contexte. Une fois que la méthode Transform a renvoyé, le XmlReader est positionné sur le nœud suivant après la fin du document de contexte. Si la fin du document est atteinte, le XmlReader est positionné à la fin du fichier (EOF).
L’exemple suivant utilise la XslCompiledTransform.Transform méthode pour transformer le fichier books.xml en fichier books.html à l’aide de la feuille de style transform.xsl. Vous trouverez les fichiers books.xml et transform.xsl dans cette rubrique : Comment : effectuer une transformation XSLT à l’aide d’un assembly.
// Create a reader to read books.xml
XmlReader reader = XmlReader.Create("books.xml");
// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform(reader, writer);
'Create a reader to read books.xml
Dim reader As XmlReader = XmlReader.Create("books.xml")
' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
' Execute the transformation.
transform.Transform(reader, writer)
URI de chaîne
Vous pouvez également spécifier l’URI du document source comme entrée XSLT. Un XmlResolver est utilisé pour résoudre l’URI. Vous pouvez spécifier le XmlResolver que vous souhaitez utiliser en le passant à la méthode Transform. Si aucune XmlResolver valeur n’est spécifiée, la Transform méthode utilise une valeur par défaut XmlUrlResolver sans informations d’identification.
L’exemple suivant utilise la XslCompiledTransform.Transform méthode pour transformer le fichier books.xml en fichier books.html à l’aide de la feuille de style transform.xsl. Vous trouverez les fichiers books.xml et transform.xsl dans cette rubrique : Comment : effectuer une transformation XSLT à l’aide d’un assembly.
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform("books.xml", "books.html");
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
' Execute the transformation.
transform.Transform("books.xml", "books.html")
Pour plus d’informations, consultez Résolution des ressources externes pendant le traitement XSLT.