Back-End

9 dez, 2008

Cadastrar, Listar, Editar e Excluir dados de um XML com ASP – Parte 02

Publicidade

De primeira, vamos organizar o arquivo Visualizar.xsl:

Visualizar.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
    <center>
      <font color="#000000" size="2" face="MS Sans Serif">Visualizando Dados</font>
      <table width="465" border="1" cellspacing="0" cellpadding="0">
        <tr>
          <td width="117" height="22"><div align="center"><strong>Nome</strong></div></td>
          <td width="125"><div align="center"><strong>E-mail</strong></div></td>
          <td width="107"><div align="center"><strong>Telefone</strong></div></td>
          <td width="106"><div align="center"><strong>Ações</strong></div></td>
        </tr>
        <xsl:for-each select="cadastro/usuario">
          <tr align="center">
            <td height="22"><xsl:value-of select="nome"/></td>
            <td><xsl:value-of select="email"/></td>
            <td><xsl:value-of select="telefone"/></td>
            <td><a><xsl:attribute name="href">Editar.asp?nome=<xsl:value-of select="nome"/><xsl:value-of select="link"/></xsl:attribute>Editar</a>/<a><xsl:attribute name="href">Listar.asp?nome=<xsl:value-of select="nome"/><xsl:value-of select="link"/></xsl:attribute>Apagar</a></td>
          </tr>
        </xsl:for-each>
      </table>
    </center>
  </xsl:template>
</xsl:stylesheet>

Com o stylesheet (que não vem ao caso explicar no momento) vamos fazendo a estrutura de visualização de todos os elementos da tag usuario através de um for-each assim:

<xsl:for-each select=”cadastro/usuario”> e fechando com </xsl:for-each>

Pegamos o valor dos elementos com essa estrutura aqui: <xsl:value-of select=”nome_da_tag”/>.

Usamos o atributo <xsl:attribute name=”href”> para gerar links, no nosso caso para excluir e editar (que não será mostrado nesse artigo).

Em uma página chamada Listar.asp criamos os objetos para chamar o XML e o XSL e integrá-los com o transformNode:

Set XSLDOC = Server.CreateObject("Microsoft.XMLDOM")
Set XMLDOC = Server.CreateObject("Microsoft.XMLDOM")

XMLDOC.Load(Server.MapPath("Banco.xml"))
XSLDOC.Load(Server.MapPath("Visualizar.xsl"))
Response.Write(XMLDOC.transformNode(XSLDOC))

Para deletar é simples, criamos um XMLDOC.documentElement para escolher qual nó vamos deletar e chamamos por querystring como tem no <xsl:attribute name=”href”> do Visualizar.xsl, que no caso usamos o select=”nome”, deletando com o removeChild, segue abaixo o código completo de Listar.asp

Listar.asp

<%@ Language="VBScript" %>
<html>
<body>
<a href="Cadastro.asp">CADASTRAR</a> - <a href="Listar.asp">LISTAR</a>
<br><br>
<%
Set XSLDOC = Server.CreateObject("Microsoft.XMLDOM") ' Criando Objeto
Set XMLDOC = Server.CreateObject("Microsoft.XMLDOM") ' Criando Objeto

Listando Dados

XMLDOC.Load(Server.MapPath("Banco.xml"))
XSLDOC.Load(Server.MapPath("Visualizar.xsl"))
Response.Write(XMLDOC.transformNode(XSLDOC))

Deletando Dados

If CStr(Request.QueryString("Nome")) <> "" Then
	Banco = Server.MapPath("Banco.xml") ' Chamando o Arquivo XML para sofrer alteração
	XMLDOC.Load(Banco)

	Set RaizXML = XMLDOC.documentElement
	Set AlterarReg = RaizXML.selectSingleNode("usuario[nome='"&Request.QueryString("nome")&"']")
	RaizXML.removeChild(AlterarReg) ' Linha de remoção de Objetos

	XMLDOC.Save(Banco)
	Response.Write("<script>alert('Deletado com Sucesso!');location='Listar.asp'</script>")
End If

Set XSLDOC = Nothing
Set XMLDOC = Nothing
%>
</body>
</html>

E pronto, mais um artigo finalizado! Até o próximo!