Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRANSFORMATION XSLT EN .NET 2.0


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : xslt Niveau : Initié Date de création : 09/09/2005 Vu : 9 683

Note :
6,75 / 10 - par 4 personnes
6,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


Description

Bonjour, :)

je me suis penché dernièrement sur les modifications du framework .net 2.0, et la partie transformation XSL a été changée et n'est pas très aisée d'utilisation. Voici donc ci-dessous un code SIMPLE à mettre en oeuvre pour faire une trsnformation à partir de fichiers XML et XSL
 

Source

  • public string Transform_XMLFile_With_XSLTFile(string XML_Filename,string XSL_Filename)
  • {
  • //On charge le fichier XML dans un XmlDocument
  • XmlDocument reader = new XmlDocument();
  • reader.Load(XML_Filename);
  • //On charge le fichier XSL dans un XmlDocument
  • XmlDocument XSLTDocument = new XmlDocument();
  • XSLTDocument.Load(XSL_Filename);
  • //Création du lecteur XML
  • XmlNodeReader XSLTDocumentReader = new XmlNodeReader(reader);
  • //Création du transformateur XSLT
  • XslCompiledTransform xslt = new XslCompiledTransform();
  • xslt.Load(XSLTDocument,null,null);
  • //là où sera enregistré la transformation
  • StringBuilder TransformOutput = new StringBuilder();
  • //paramètre d'écriture du fichier transformé
  • XmlWriterSettings settings = new XmlWriterSettings();
  • //paramètre un peu spécial, consultez msdn
  • settings.ConformanceLevel = ConformanceLevel.Auto;
  • //xslt.OutputSettings correspond aux paramètres <xsl:output> dans votre fichier XSL
  • //veillez à bien spécifier la sortie en html <xsl:output method="html" /> autrement
  • //c'est "xml" par défaut et les balises vides (exemple <div></div>) seront transformées
  • //en (</div>)
  • XmlWriter htmlDoc = XmlWriter.Create(TransformOutput, xslt.OutputSettings);
  • xslt.Transform(XSLTDocumentReader, null, htmlDoc, new XmlUrlResolver());
  • return TransformOutput.ToString();
  • }
public string Transform_XMLFile_With_XSLTFile(string XML_Filename,string XSL_Filename)
{

	//On charge le fichier XML dans un XmlDocument 
	
	XmlDocument reader = new XmlDocument();			
	reader.Load(XML_Filename);
	
	//On charge le fichier XSL dans un XmlDocument 
	
	XmlDocument XSLTDocument = new XmlDocument();			
	XSLTDocument.Load(XSL_Filename);


	//Création du lecteur XML 
	XmlNodeReader XSLTDocumentReader = new XmlNodeReader(reader);

	//Création du transformateur XSLT	
	XslCompiledTransform xslt = new XslCompiledTransform();
	xslt.Load(XSLTDocument,null,null);
	
	//là où sera enregistré la transformation 
	StringBuilder TransformOutput = new StringBuilder();
	
	//paramètre d'écriture du fichier transformé
	XmlWriterSettings settings = new XmlWriterSettings(); 
	
	//paramètre un peu spécial, consultez msdn
	settings.ConformanceLevel = ConformanceLevel.Auto;
	
	//xslt.OutputSettings correspond aux paramètres <xsl:output> dans votre fichier XSL
	//veillez à bien spécifier la sortie en html <xsl:output method="html" /> autrement 
	//c'est "xml" par défaut et les balises vides (exemple <div></div>) seront transformées
	//en (</div>)			
	
	XmlWriter htmlDoc = XmlWriter.Create(TransformOutput, xslt.OutputSettings);	
	xslt.Transform(XSLTDocumentReader, null, htmlDoc, new XmlUrlResolver());
		

	return TransformOutput.ToString();
}

Conclusion

Bonnes transformations :)
 

Commentaires et avis

signaler à un administrateur
Commentaire de stailer le 10/09/2005 20:41:35

Salut, merci pour ce code... J'ai réalisé un composant qui fait des transformations XSLT, lié avec SQL Server. L'ancienne méthode de transformation est elle toujours compatible dans le framework 2.0 ?

signaler à un administrateur
Commentaire de poppyto le 11/09/2005 10:29:54 administrateur CS

Il y a plusieurs versions du Framework 2.0.
Cette version marche à partir de la v2.0.50215 (celle livrée sur le DVD beta).

Evidemment si l'ancienne version marchait encore, je n'aurait pas perdu mon temps à écrire ce code ^^.

Il y a eu pas mal de changement dans le namespace xml.
Par contre, il est possible de télécharger les fonctions obsolètes.

signaler à un administrateur
Commentaire de stailer le 11/09/2005 19:46:52

Ok, merci pour les précisions

signaler à un administrateur
Commentaire de sebmafate le 12/09/2005 11:27:14 administrateur CS

en fait, la transformation XLST du framework 1.1 fonctionne toujours (compatibilité oblige), mais beaucoup de classe sont obsolètes.

signaler à un administrateur
Commentaire de paradoxxl le 31/10/2006 16:17:15

cette source ne focntionne pas avec l'imporation de fichier xsl <xsl:import> je cherche actuelemnt une solution a ce probleme

signaler à un administrateur
Commentaire de verolaet le 02/01/2007 15:40:57

Merci! Enfin un exemple clair et simple de fusion xml et xsl en C# !
Tu m'as sauvée l'enervement! (je suis une gra&nde adepte de XML et XSL mais plus spécialiste en developpements Javascript que C#)

signaler à un administrateur
Commentaire de hollyroody le 03/01/2007 09:31:25

Ce code est bien pratique, mais je travaille malheureusement en .NET 1.1... pourrait on le traduire ou y'a t'il une source similaire qui existe ?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

création d' un XSLT IDE avec # [ par moha_yougo ] je suis etudiant je cr&#233;er un XSLT&nbsp; IDE avec c#je c pas comment je v faire &#231;apouriez vous m'aidez@+++<IMG src="/imgs2/smil générateur de feuille destyle xslt avec c# (IDE) [ par moha_yougo ] bonjoiurje suis &#233;tudiant je veut r&#233;aliser un g&#233;n&#233;rateur de feuilles destyles xslt avec c#pour cela pour les sp&#233;ciofication: l problème xml et xslt [ par c_ensias ] Bonjour &#224; tous,J'ai un fichier xml dont j'ai appliqu&#233; un filtre xslt pour en extraire des donn&#233;es.Je voudrais que la sortie soit un fic Comment éviter la perte des espaces lors d'une transformation xslt ? [ par virgul ] Bonjour,Voila j'ai un webservice qui me fait une transformation xslt mais le seul problème c'est qu'il me tronque les espaces que j'ai entre mes balis Inclure et appelé un xslt dans mon projet [ par virgul ] Bonjour,Voila  j'aimerais dans Microsoft Office Infopath (une sorte de Winform en plus sophistiqué) introduire en référence (et donc qu'il soit inclus Transformation xml par xslt sur CF [ par nonold ] Bonjour,je cherche depuis pas mal de jours deja une solution pour pouvoir faire une transformation d'un xml via xslt pour en faire une page web. Sur l


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.