Oggi ho fatto un pò la scansafatiche ogni tanto fa anche bene... vediamo una cosa carina che ho ripassato la classe XmlDataDocument e la trasformazione XSLT.
XmlDataDocument è l'analogo del DataSet, quando i dati Xml vengono caricati nella rappresentazione in-memory (XmlDataDocument) essi vengono manipolati usando i W3C DOM (Document Object Model) inoltre legandoci al discorso che faremo dopo un XmlDataDocument può essere utilizzato come sorgente per XSLT.
La creazione di un XmlDataDocument richiede l'associazione con un DataSet, qui le cose sono due o utilizziamo un DataSet preesistente o ne creiamo uno vuoto e l'associamo al XmlDataDocument. Vediamo con qualche riga di codice come procedere:
/*1° caso
DataSet preesistente nominato DataSetold
dunque lo utilizziamo come paramentro nel costruttore */
XmlDataDocument mioDocumento=new XmlDataDocument(DataSetold);
/*2° caso
/non abbiamo un DataSet ma ne creiamo uno nuovo*/
XmlDataDocument mioDocumento=new XmlDataDocument();
Ora il problema è riempirlo....
Quale possono essere le fonti:
- file XML
- XML stream
- un oggetto XmlReader ed un TextReader
Vediamo con qualche riga di codice come si procede
/*
Vediamo come effettuare il "load"
dei dati XML contenuti in un file mioXml.xml nel XmlDataDocument
Creiamo come abbiamo visto prima un DataSet vuoto
(lo recuperiamo tramite la proprietà XmlDataDocument.DataSet)
*/
XmlDataDocument mioDocumento=new XmlDataDocument();
/*
richiamiamo il medoto ReadXmlSchema
*/
mioDocumento.DataSet.ReadXmlSchema(@"C:\mioXml.xml");
/*
ora efettuatiamo il Load
*/
mioDocumento.Load(@"C:\mioXml.xml");
Trasformazione XSLT
Ora vediamo come effettuare una trasformazione XSLT, prima di tutto a cosa serve?
Facilita la trasformazione dai dati XML in diversi formati, es. da XML a HTML oppure ad un formato particolare di XML, comunque quello che vogliamo fare è effettuare una trasformazione. Come ci viene in aiuto .Net? Grazie alla classe XslTransform, non dimentichiamoci che dobbiamo utilizzare uno style sheet, mica può inventarselo!!! Ed ovviamente abbiamo anche un metodo che ci permette il suo load ossia XslTransform.Load
/*
Dichiarimo l'oggetto laTrasformazione
*/
Xml.Xls.XlsTransform laTrasformazione = new System.Xml.XslTransform();
/*
Effettuaiamo il load dello style sheet di nome nuovostile.xsl
*/
laTrasformazione.Load(@"C:\nuovostile.xsl");
/*
Poi possiamo eseguire la trasformazione in XmlDataDocument e per far ciò abbiamo bisogno di tre parametri, che in ordine sono:
- l'oggetto da trasformare, un XlmDataDocument o un qualsiasi oggetto che implementi l'interfaccia IXPathNavigable
- un'istanza di System.Xml.Xsl.XsltArgumentList utilizzata per contenere i paramentri richiesti dello style sheet, se non ve ne sono questo paramentro = null
- l'oggetto nel quale scriviamo l'output, può essere un'istanza di Stream,TextWriter o XmlWriter
Ed ora vediamo come effettuare una trasformazione ad un XmlDataDocument chiamato Documento1 (1° parametro) e scrivere il risultato della trasformazione in un file di testo esetesto.txt (3° parametro) il secondo paramentro, ossia i parametri dello style sheet supponiamo che non ve ne siano, lo poniamo null
*/
System.IO.StreamWrite testo = new System.IO.StreamWriter("esetesto.txt");
/*
*/
laTrasformazione.Transform(Documento1,null,testo);
Domani partiremo dall'inizio ossia dalla definizione di ADO.Net, facendo un rapido riassunto e vedremo come leggere i dati da un flat file.
powered by IMHO 1.3