<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetcampania.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.Net in the IronCube</title><link>http://dotnetcampania.org/blogs/ironcube/default.aspx</link><description /><dc:language>it</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Xslt &amp; XslComplitedTrasform</title><link>http://dotnetcampania.org/blogs/ironcube/archive/2010/07/19/xslt-amp-xslcomplitedtrasform.aspx</link><pubDate>Mon, 19 Jul 2010 10:35:00 GMT</pubDate><guid isPermaLink="false">793b29df-8c2a-42d1-a022-8914441a68e5:1005</guid><dc:creator>IronCube</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetcampania.org/blogs/ironcube/rsscomments.aspx?PostID=1005</wfw:commentRss><comments>http://dotnetcampania.org/blogs/ironcube/archive/2010/07/19/xslt-amp-xslcomplitedtrasform.aspx#comments</comments><description>&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;</description><category domain="http://dotnetcampania.org/blogs/ironcube/archive/tags/xslt/default.aspx">xslt</category><category domain="http://dotnetcampania.org/blogs/ironcube/archive/tags/xslComplitedTrasform/default.aspx">xslComplitedTrasform</category><category domain="http://dotnetcampania.org/blogs/ironcube/archive/tags/C_2300_/default.aspx">C#</category></item></channel></rss>
