Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ted k'

Que tal Inserir, Visualizar e Deletar linhas de um XML?

Recommended Posts

æ galera:

 

segue um exemplo muito simples e fácil de "bricar" com o xml

 

Vamos começar com a nossa página Default.asp

 

PÁGINA : Index.asp

ASP
<%@ Language="VBScript"%>

 

<html><body>

<form action="Index.asp?Tedk=Cadastrar" method="post">

<b>Seu nome:</b><input type="text" name="nome"><input type="hidden" name="link" value="&Tedk=Deletar"><br>

<b>Seu e-mail:</b><input type="text" name="email"><br>

<input type="submit" value="Cadastrar">

</form>

 

<%

'--------------------- Início - CADASTRANDO ---------------------'

If Request.QueryString("Tedk") = "Cadastrar" Then

 

nome=request.form("nome")

email=request.form("email")

link=request.form("link")

 

set doc=server.createobject("microsoft.xmldom")

doc.load(server.mappath("cadastro.xml"))

 

set raiz=doc.documentElement

set registro=doc.createelement("usuario")

raiz.appendchild(registro)

 

set campo=doc.createelement("nome")

campo.text=nome

registro.appendchild(campo)

 

set campo=doc.createelement("email")

campo.text=email

registro.appendchild(campo)

 

set campo=doc.createelement("link")

campo.text=link

registro.appendchild(campo)

 

doc.save(server.mappath("Cadastro.xml"))

response.write"Cadastro realizado com sucesso!<a href='Index.asp?Tedk=Ver'>Acessar Dados</a>"

'--------------------- Final - CADASTRANDO ---------------------'

 

 

'--------------------- Início - VISUALIZANDO ---------------------'

ElseIf Request.QueryString("Tedk") = "Ver" Then

 

set xsldoc=server.createobject("microsoft.xmldom")

set xmldoc=server.createobject("microsoft.xmldom")

 

xmldoc.load(server.mappath("cadastro.xml"))

xsldoc.load(server.mappath("Visualizar.xsl"))

 

response.write(xmldoc.transformnode(xsldoc))

'--------------------- Final - VISUALIZANDO ---------------------'

 

 

'--------------------- Início - DELETANDO ---------------------'

ElseIf Request.QueryString("Tedk") = "Deletar" Then

 

response.buffer="true"

 

set xmldoc=server.createobject("microsoft.xmldom")

xmldoc.load(server.mappath("cadastro.xml"))

 

set raiz=xmldoc.documentElement

 

set registro=raiz.selectsinglenode("usuario[nome='"&request.querystring("nome")&"']")

raiz.removechild(registro)

 

xmldoc.save(server.mappath("cadastro.xml"))

Response.Write("Deletado com Sucesso")

 

End If

'--------------------- Final - DELETANDO ---------------------'

%>

</body></html>

 

 

PÁGINA : Cadastro.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<cadastro>
<Usuario>
  <nome>thiago</nome>
   <email>adamisongs@hotmail.com</email>
   <link>&Tedk=Deletar</link>
</Usuario>
</cadastro>

 

PÁGINA : 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="283" border="0" cellspacing="0" cellpadding="0">
  <tr>
	<td width="107"><div align="center"><strong>Nome</strong></div></td>
	<td width="176"><div align="center"><strong>Email</strong></div></td>
	<td width="176"><div align="center"><strong>Apagar</strong></div></td>
  </tr>
<xsl:for-each select="cadastro/usuario"> 
  <tr>
	<td><div align="center"><xsl:value-of select="nome"/></div></td>
	<td><div align="center"><xsl:value-of select="email"/></div></td>
	<td><div align="center"><a><xsl:attribute name="href">Index.asp?nome=<xsl:value-of select="nome"/><xsl:value-of select="link"/></xsl:attribute>Apagar</a></div></td>
  </tr>
</xsl:for-each>
</table>
</center>
</xsl:template> 
</xsl:stylesheet>

 

é básio, é fácil mais eu gosto!!!

espero que isso seja adotado como exemplo para que está começando com XML!!!!

 

abraços!!!

 

by Ted k'

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara....não testei, mas parabéns pelo código e principalmente pela iniciativa de contribuir com a galeraAbraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pelo apoio cara, espero que todos tenhão sempre essa visão de ajudar uns aos outros e seupre que eu puder contribuir estarei presente!!!

 

Abraços!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de quase me matar eu encontrei essa beleza de exemplo, mas eu consegui.

Agora a minha grande dificuldade é alterar uma linha específica e o meu problema é que os elementos possuem atributos, por ex.:

 

<?xml version="1.0" encoding="ISO-8859-1"?><cadastro>  <Usuario>	   <nome id=12>Carlos</nome>  </Usuario></cadastro>

Alguém poderia me dar uma força?

Agradeço e qdo eu puder ajudar, é só mandar.

[]s,

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o xsl com referências: exemplo

 

<xsl:variable name="id" />
<xsl:if test="ref[.=$id]">

adapite ao seu código apra ficar essa condição dinamicamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Ted K pela atenção, mas eu não utilizo um XSL. Assim como você fez a opção DELETANDO eu precisva criar uma ALTERANDO, entendeu?

Eu preciso 'selecionar' um usuario, selecionar o elemento nome, cujo id=12 e alterá-lo por exemplo para id=13.

Eu até pensei em deletá-lo e criá-lo novamente, mas no meu caso, em baixo do <nome> existe um 4º nível. Por exemplo:

<?xml version="1.0" encoding="ISO-8859-1"?><cadastro>  <Usuario>	   <nome id=12>			  <foto nome="01.jpg" />			  <foto nome="02.jpg" />	   </nome>  </Usuario></cadastro>

Entendeu a minha BUXA????? To nisso há uns 4 dias, só para tentar alterar o nome id=12.

Ufa... heheheheheheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

o XSL vai servir para mostrar os dados para o asp, ou para ser alterado ou para ser excluído, terá sim que usar um XSL!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de mais nada, obrigado pelo codigo, graças a ele eu criei coragem de começar a mexer com ASP > XML > XSL...

inclusive eu upei no meu server e funfou perfeito... LINK

Pesquisei tudo sobre o assunto no forum, ASP > XML > XSL, inclusive encontrei um outro POST onde você (TedK') dizia que poderia modificar o Codigo caso alguém pedisse e na verdade eu até tentei "brincar" um pouco, mas ASP ainda num é minha praia, já XML e XSL eu me viro muito bem...

Sem mais delongas, eu coloquei um Iframe logo abaixo do formulario pra exibir o XML/XSL LINK, até aí tudo ok, mas queria que ao Cadastrar a ação atualizasse o iframe, como num AJAX, não sei se é possível já que o XML é executado localmente, gostaria ainda de saber se é possivel "EDITAR" além de "APAGAR" o nó do usuário em questão, e quais ajustes são necessários pra tornar a ideia funcional.

Com estes ajustes seria fácil uma adatapção para editar outros XML. Eu ousaria dizer que seria um dos mais simples e melhores editores de XML Server Side, de que se há conhecimento... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif hehe

Desde já Muitissimo Obrigado!

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara como IFRAME nunca tentei, nem com AJAX, mais creio que com AJAX pode ser melhor, pois você pode tentar passar via query, agora a parte do editar nao coloquei nem sei pq mais com uma funcionalidade que se chama nodeName, você pode usar a seu favor para isso, olha esse script que coloquei no meu blog, com ele você já pode brincar mais ainda:

http://tedk.com.br/blog/index.php/2008/07/...ag-xml-com-asp/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara muito legal este código. Gostaria de saber como faço para implementar ele em um banner que tenho aqui.

 

Tenho um arquivo xml chamado banners.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<rotator isRandom="false">
	<bannerTime>1</bannerTime>
	<numberOfBanners>10</numberOfBanners>
	<banners showHeader="true">
		<banner>
			<name>Banner 1</name>
			<body>Banner 1</body>
			<imagePath>01.jpg</imagePath>
			<link>http://</link>
		</banner>
		<banner>
			<name>Banner 2</name>
			<body>Banner 2</body>
			<imagePath>02.jpg</imagePath>
			<link>http://</link>
		</banner>
		<banner>
			<name>Banner 3</name>
			<body>Banner 3</body>
			<imagePath>03.jpg</imagePath>
			<link>http://</link>
		</banner>
		<banner>
			<name>Banner 4</name>
			<body>Banner 4</body>
			<imagePath>04.jpg</imagePath>
			<link>http://</link>
		</banner>
		<banner>
			<name>Banner 5</name>
			<body>Lorem Ipsum</body>
			<imagePath>05.jpg</imagePath>
			<link>http://</link>
		</banner>
	</banners>
	</rotator>
Porém tentei fazer com que a inclusão dessa linha fosse feito via ASP, porém ele não está gravando certinho mas ele grava as linhas após a tag </rotator>, ele precisa ficar dentro desta tag, senão não irá aparecer no flash.

 

Há possibilidade de você me ajudar?

 

Sds,

 

Vagner Nunes

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.