Transformation xslt en .net 2.0

Contenu du snippet

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 / Exemple :


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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.