|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Fazer páginas utilizando ficheiros XSL
|
 |
|
|
Postada em 23/10/2003 por ^HEAVY-METAL^
Tem-se falado muito em XML, DOM e XSLT em conjugação com ASPs. Alguns de vós já devem ter feito alguma coisa nessa área. Este artigo é para os que nunca tiveram contacto com essa tecnologia, fornecendo um pequeno exemplo do que pode ser feito.
Este exemplo é composto por 3 ficheiros. Para poder testar o seu funcionamento, basta possuir instalado no PC o Personal Web Server e o Internet Explorer 5.0.
Ficheiro : exemplo.xml
O xml (eXtensible Markup Language) permite guardar informação e aceder à mesma. Assim como poderão ver de seguida, vai ser utilizado para guardar a informação que é independente da plataforma utilizada.
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="exemplo.xsl"?> <!-- a linha acima permite que caso este ficheiro seja aberto com o IE5 o xsl abaixo descrito lhe seja aplicado sem necessidade do .asp --> <exemplo> <!-- Isto é um comentário -->
<titulo>Pequeno exemplo</titulo> <!-- assim como foi utilizado o nome 'titulo' ou 'exemplo' podiam ter sido usados outros -->
<ficheiros>
<ficheiro> <nome>exemplo.xml</nome> <descricao>Contém o código que neste momento está a ler :) </descricao> </ficheiro>
<ficheiro> <nome>exemplo.xsl</nome> <descricao>Contém a formatação que irá ser aplicada ao xml </descricao> </ficheiro>
<ficheiro> <nome>exemplo.asp</nome> <descricao>O ficheiro ASP</descricao> </ficheiro>
</ficheiros>
<exemplo>
Ficheiro : exemplo.xsl
Este ficheiro define como o xml deverá ser transformado num formato reconhecido pelo browser. Imagine que pretende os dados contidos no xml sejam consultados por vários browsers, mas que os mesmos não são compativeis entre si. Neste caso pode manter o xml e fazer um xsl especifico para cada tipo de browser.
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/"> <!-- a linha acima é utilizada para para indicar que é uma template que corresponde à raiz do documento xml --> <html> <body> <h1><xsl:value-of select="exemplo/titulo"/></h1> <xsl:apply-templates select="exemplo/ficheiros"/> </body> </html> </xsl:template>
<xsl:template match="ficheiros"> <table border="2"> <tr> <th>Nome</th> <th>Descrição</th> </tr> <xsl:apply-templates select="ficheiro"/> </table> </xsl:template>
<xsl:template match="ficheiro"> <tr> <th><xsl:value-of select="nome"/></th> <th><xsl:value-of select="descricao"/></th> </tr> </xsl:template>
</xsl:stylesheet>
Ficheiro : exemplo.asp
<% '**** Criação dos objectos que irão conter o xml e o xsl ***** ' o domXML irá conter o xml original Set domXML= Server.CreateObject("Microsoft.XMLDOM")
' o domStyle irá conter o stylesheet Set domStyle= Server.CreateObject("Microsoft.XMLDOM")
'**** o Load do xml em memória**** domXML.async = False domXML.Load Server.MapPath ("exemplo.xml")
'**** o Load do xsl em memória **** domStyle.async = False domStyle.Load Server.MapPath("exemplo.xsl")
'o xsl é aplicado ao xml sendo o resultado devolvido ao browser Response.Write domXML.transformNode(domStyle)
'Limpo as variaveis Set domXML= Nothing Set domStyle= Nothing %>
Este ficheiro está escrito em VBScript e faz com que o xsl seja aplicado ao xml devolvendo em seguida o resultado.
T+,
|
|
|
|

|