<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetcampania.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it"><title type="html">.Net in the IronCube</title><subtitle type="html" /><id>http://dotnetcampania.org/blogs/ironcube/atom.aspx</id><link rel="alternate" type="text/html" href="http://dotnetcampania.org/blogs/ironcube/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dotnetcampania.org/blogs/ironcube/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2010-07-19T12:35:00Z</updated><entry><title>Xslt &amp; XslComplitedTrasform</title><link rel="alternate" type="text/html" href="/blogs/ironcube/archive/2010/07/19/xslt-amp-xslcomplitedtrasform.aspx" /><id>/blogs/ironcube/archive/2010/07/19/xslt-amp-xslcomplitedtrasform.aspx</id><published>2010-07-19T10:35:00Z</published><updated>2010-07-19T10:35:00Z</updated><content type="html">&lt;p&gt;








 
  Normal
  0
  
  
  14
  
  
  false
  false
  false
  
  IT
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 





&lt;/p&gt;
&lt;p class="MsoNormalCxSpFirst" style="line-height:150%;"&gt;Ecco a voi un po&amp;rsquo; di
notizie sull&amp;#39;utilit&amp;agrave; degli &lt;i&gt;xslt&lt;/i&gt; e in
particolare della classe &amp;ldquo;&lt;i&gt;XslCompiledTransform&amp;rdquo;&lt;/i&gt;
del .Net Framework.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;Mi &amp;egrave; capitato di recente
di aver a che fare con dei flussi di dati provenienti da un provider di servizi
web, &lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;dati che dovevo
ovviamente processare, ma avevo la necessit&amp;agrave; di farlo con degli strumenti
preesistenti; &lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;riuscendo a trovare un
escamotage avrei evitato anche di impegolarmi nello sviluppo di qualcosa che
fondamentalmente gi&amp;agrave; avevo ma che avrei dovuto customizzare.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;La soluzione che ho
adottato &amp;egrave; stata relativamente semplice: ho adattato i metadati che ricevevo
rendendoli conformi a ci&amp;ograve; che la mia applicazione era predisposta a processare.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;Ci&amp;ograve; &amp;egrave; stato possibile
grazie agli &lt;i&gt;xslt&lt;/i&gt; (&lt;i&gt;eXtensible Stylesheet Language
Transformations&lt;/i&gt;), il linguaggio di trasformazione dell&amp;#39;XML, e alla classe &amp;ldquo;&lt;i&gt;XslComplitedTrasform&amp;rdquo;&lt;/i&gt;.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;Sapendo come &amp;egrave; formato il
messaggio contenente i dati di nostro interesse, la definizione di un file xslt
ci permette di riorganizzarli in una struttura congeniale alle nostre
necessit&amp;agrave;;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;l&amp;#39;&lt;i&gt;xslt&lt;/i&gt; si presenta come un vero e proprio linguaggio di programmazione
che permette a chi lo usa di poter utilizzare costrutti condizionali e cicli.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;Vediamo ora un esempio di
quello di cui accennato:&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;Di seguito &amp;egrave; definito l&amp;rsquo;ipotetico
file xml che riceviamo e contenente i dati che vogliamo recuperare e passare
alla nostra applicazione per l&amp;rsquo;elaborazione:&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="line-height:150%;"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/8468.Immagine1.png"&gt;&lt;img src="http://dotnetcampania.org/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/8468.Immagine1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;








 
  Normal
  0
  
  
  14
  
  
  false
  false
  false
  
  IT
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 





&lt;/p&gt;
&lt;p class="MsoNormalCxSpFirst" style="line-height:150%;"&gt;Andiamo ora a definire il
nostro &lt;i&gt;xslt&lt;/i&gt; stylesheet:&lt;/p&gt;
&lt;p class="MsoNormalCxSpFirst" style="line-height:150%;"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/7382.Immagine2.png"&gt;&lt;img src="http://dotnetcampania.org/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/7382.Immagine2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/1018.Immagine3.png"&gt;&lt;img src="http://dotnetcampania.org/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/1018.Immagine3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;












 
  Normal
  0
  
  
  14
  
  
  false
  false
  false
  
  IT
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 





 

 
  
 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Quindi ora abbiamo a disposizione due tipi di informazioni,
un xml contenete i dati a cui siamo interessati e un file di stylesheet (xslt);&lt;/p&gt;
&lt;p class="MsoNormal"&gt;grazie alla classe &amp;ldquo;&lt;i&gt;XslComplitedTrasform&amp;rdquo;&lt;/i&gt;
possiamo utilizzare queste due informazioni per ottenere un file xml formato secondo
le nostre esigenze e contenente i dati a cui siamo interessati.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/8372.Immagine4.png"&gt;&lt;img src="http://dotnetcampania.org/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/8867.Immagine4.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;








 
  Normal
  0
  
  
  14
  
  
  false
  false
  false
  
  IT
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 





&lt;/p&gt;
&lt;p class="MsoNormalCxSpFirst" style="line-height:normal;"&gt;Ecco fatto! Ora abbiamo
un file xml contenente i dati ricevuti, ma organizzati secondo le specifiche
richieste dalla nostra applicazione.&lt;/p&gt;
&lt;p class="MsoNormalCxSpFirst" style="line-height:normal;"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/3175.Immagine5.png"&gt;&lt;img src="http://dotnetcampania.org/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/ironcube/3175.Immagine5.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Questo per&amp;ograve; &amp;egrave; solo un esempio e rappresenta solo una piccola
parte delle potenzialit&amp;agrave; offerte dagli &lt;i&gt;xslt&lt;/i&gt;
e dalla classe &lt;i&gt;&amp;ldquo;XsltComplitedTrasform&amp;rdquo;&lt;/i&gt;;
per maggiori riferimenti su questa classe potete visitare il link &lt;a href="http://msdn.microsoft.com/it-it/library/system.xml.xsl.xslcompiledtransform.aspx"&gt;http://msdn.microsoft.com/it-it/library/system.xml.xsl.xslcompiledtransform.aspx&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=1005" width="1" height="1"&gt;</content><author><name>IronCube</name><uri>http://dotnetcampania.org/members/IronCube/default.aspx</uri></author><category term="xslt" scheme="http://dotnetcampania.org/blogs/ironcube/archive/tags/xslt/default.aspx" /><category term="xslComplitedTrasform" scheme="http://dotnetcampania.org/blogs/ironcube/archive/tags/xslComplitedTrasform/default.aspx" /><category term="C#" scheme="http://dotnetcampania.org/blogs/ironcube/archive/tags/C_2300_/default.aspx" /></entry></feed>
