 ASP.NET 
- Transformando XML com XSLT
ASP.NET 
- Transformando XML com XSLT
O XMLST - XML Stylesheet Transformation é definida como uma linguagem usada para converter documentos XML para outros formatos de documentos.
Nota: Sugiro que antes de prosseguir você leia os artigos do site: Tutorial XPath e XML - eXtensible Markup Language - Introdução
Os processadores XSLT tratam a entrada de documentos XML bem como as folhas de estilo XSLT e então processa as instruções encontradas na folha de estilo XSLT usando os elementos do documento XML. Durante o processamento as instruções XSLT é gerada como saída um documento XML estruturado.
Para transformar XML para HTML para ser usado em um sitio da web ou para transformar o XML em um documento que contenha a informação necessária usamos o a classe XSLTransform encontrada no namespace System.Xml.Xsl.
Uma transformação XSL usa como documento de entrada um documento XML através de 3 classes as quais implementam XPathNavigator e IXPathNavigabel :
XmlDocument - È encontradas no namespace System.XML. Esta classe pode ser usada onde uma estrutura DOM precisa ser editada primeiro antes da transformação XSL.
XmlDataDocument - já aquela estende a classe XMLDocument e pode ser usada para trabalhar com DataSets.
XPathDocument. 
Afim de realizar uma transformação usando XslTransformation você deve primeiro criar um objeto XslTransform e carregá-lo com o documento XSLT desejado usando o método Load. Este método da classe XslTransform carrega a folha de estilo XSL.
A transformação é executada através da chamada do método Transform da classe XslTransform.
Vejamos com fazer isto na prática:
Vamos usar o seguinte arquivo XML e efetuar a transformação do mesmo usando XslTransform em uma página ASP.NET.
Produtos.xml
| <?xml version="1.0" encoding="utf-8" ?> <Produtos> <produto> <codigo>10009</codigo> <nome>Leite Desnatado</nome> <estoque>100</estoque> </produto> <produto> <codigo>10010</codigo> <nome>Farinha de Trigo</nome> <estoque>360</estoque> </produto> <produto> <codigo>10011</codigo> <nome>Manteiga</nome> <estoque>540</estoque> </produto> <produto> <codigo>10012</codigo> <nome>Azeite de Oliva</nome> <estoque>309</estoque> </produto> </Produtos> 
 | 
Nota: Cuidado, o xml é case-sensitive assim produto é diferente de Produto.
Vamos criar o documento XSLT para o documento XML acima.
Produtos.xslt
| <?xml version="1.0" encoding="ISO-8859-1" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <table border="1"> <tr> <th>Codigo</th> <th>Nome</th> <th>Estoque</th> </tr> <xsl:for-each select="Produtos/produto"> <tr> <td> <br><xsl:value-of select="codigo"/></br> </td> <td> <br><xsl:value-of select="nome"/></br> </td> <td> <br><xsl:value-of select="estoque"/></br> </td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> | 
O arquivo produtos.xslt nada mais é do que nosso arquivo de folha de estilo com as definições que iremos aplicar sobre o arquivo produtos.xml para que uma página aspx seja gerada.
Agora vamos criar uma página ASP.NET usando o Visual Web Developer para poder mostrar como podemos efetuar a transformação.
Abra o VWD e crie um novo Web Site. Na página padrão default.aspx , estando no modo Design inclua dois cotnroles XML a partir da toolBox :
|  | 
Os namespaces usados no projeto serão:
Imports
System.XmlAgora vamos incluir o seguinte código no evento Load da página web:
| Protected 
    Sub Page_Load(ByVal 
    sender As 
    Object, 
    ByVal e 
    As System.EventArgs)
    Handles 
    Me.Load
    Dim documentoXML 
    As 
    New XmlDocument documentoXML.Load(Server.MapPath("produtos.xml")) Dim documentoXSL As New XslTransform documentoXSL.Load(Server.MapPath("produtos.xslt")) Xml1.Document = documentoXML | 
No código acima estou criando dois objetos : documentoXML para tratar o arquivo XML e documentoXSL para tratar o arquivo XSLT.
Usando o método Load estamos carregando os dois arquivos nos objetos e em seguida atribuindo aos controles XML do servidor.(xml1 e xml2).
A transformação ocorre de forma automática quando a página é executada, conforme exibição da figura abaixo que mostra o resultado obtido para o nosso exemplo:
|  | 
Em um 
próximo artigo eu irei mostrar como você pode usar este recurso para transformar 
os dados de um banco de dados aplicando XSLT. Aguarde... 
 
José Carlos Macoratti