rosalba

Il blog di Rosalba Fiore [Microsoft Certified Trainer]
posts - 398, comments - 583, trackbacks - 4693

My Links

News

Article Categories

Archives

Post Categories

Image Galleries

Al primo posto

Alcune delle Donne Attive

Alcuni dei ferri del mestiere di una MCT

Certificazioni Informatiche

elearning...funziona solo in alcuni casi!!!

Eventi

Gli MCT nel mondo

La mia zone

Link tecnici

Link un pò così

Panoramica altre Community

Post-it Articoli e post di MCT, MVP ect

Windows Vista

Xml è tra di noi....

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:

  1. l'oggetto da trasformare, un XlmDataDocument o un qualsiasi oggetto che implementi l'interfaccia IXPathNavigable
  2. un'istanza di System.Xml.Xsl.XsltArgumentList utilizzata per contenere i paramentri richiesti dello style sheet, se non ve ne sono questo paramentro = null
  3. 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

Print | posted on mercoledì 1 febbraio 2006 01:02 | Filed Under [ C# ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET