XslTrasform mi è diventata XslCompiledTransform

di Andrea Zani, in .NET2,

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

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese