Preso del mio vecchio codice. Copio in una pagina per asp.net 2.0. Il codice niente di complesso: una trasformazione di un file xml grazie all'xslt:
string Trasforma(string xml_file, string xsl_file)
{
XmlDataDocument doc=new XmlDataDocument();
doc.Load(Request.MapPath(xml_file);
XslTransform xslt=new XslTransform();
xslt.Load(Request.MapPath(xsl_file));
StringBuilder sb=new StringBuilder();
StringWriter sw=new StringWriter(sb);
XmlUrlResolver resolver = new XmlUrlResolver(); xslt.Transform(doc,args,sw,resolver); sw.Close(); return sb.ToString(); }
Codice stupido: dati i due file ritorna la stringa con il risultato della trasformazione (è un pezzo di codice prelevato da un esempio reale). Ok, lo compilo con vs 2005 e sull'XslTrasform ottengo che la classe è obsoleta e deve essere utilizzata la nuova XslCompiledTrasform.
Cerco di informarmi a riguardo, e trovo subito la documentazione completa a riguardo. Link interessante e ricco di informazioni. Ok, ma come diventa ora quel codice qui sopra? Eccolo:
string Trasforma(string xml_file, string xsl_file)
{
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(Request.MapPath(xsl_file));
XmlWriterSettings ws = transform.OutputSettings.Clone();
ws.CheckCharacters = false;
StringBuilder sb = new StringBuilder();
XmlWriter sw = XmlWriter.Create(sb,ws);
transform.Transform(Request.MapPath(xml_file), sw);
return sb.ToString();
}
Anche se questo mi ha fatto incacchiare come un'ape (Cartman docet).
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Un po' di benchmark tra Linq, Entity Framework e Nhibernate, il 12 ottobre 2008 alle 14:46
- UrlRewriting con trabocchetti vari, l'11 dicembre 2007 alle 21:00
- Windows Forms - DataGridView e validazione, il 23 settembre 2007 alle 20:08
- ControlParameter e masterpage... bug?, il 23 dicembre 2006 alle 15:58
- Se Visual Studio 2005 non accetta più la tastiera, il 16 dicembre 2006 alle 20:45
- Service Pack 1 di Visual Studio 2005, il 16 dicembre 2006 alle 20:35
