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