Gerando XML

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Veja neste artigo: Como gerar XML.

Autor: José Carlos Macoratti (macoratti@yahoo.com)

 

Na verdade, um arquivo XML pode ser criado facilmente por qualquer editor de Textos (que tal o NotePad?) e só abrir e digitar o texto respeitando o padrão para arquivos XML.

O problema é quando necessitamos gerar arquivos XML de forma dinâmica. Neste caso, dependendo da situação você pode adotar a estratégia mais adequada. Se você não precisa armazenar o arquivo gerado em disco, pode gerar o arquivo XML em uma página ASP e enviar o arquivo como XML.

Abaixo temos um exemplo de código que pode ser usado para criar o arquivo XML: aviso.xml:

<%
Response.ContentType="text/xml"
Response.Write("<?xml version="1.0"?>")
Response.Write("<aviso>")
Response.Write("<para>Janice data="01/04/2000"</para>")
Response.Write("<de>Jefferson</de>")
Response.Write("<cabecalho>Lembre-se</cabecalho>")
Response.Write("<corpo>Amanha voce tem prova de matematica</corpo>")
Response.Write("</aviso> ")
%>

O cenário mais comum é você ter que gerar um arquivo XML a partir de informações que estão armazenadas em uma base de dados. Neste caso, temos que usar a tecnologia ADO para acessar a fonte de dados. No exemplo abaixo, estou acessando a base de dados Clientes.mdb e gerando um arquivo XML com as informações de nome, endereço e email da tabela Clientes.

<%
Response.ContentType = "text/xml"
set conn=Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0;"
conn.open server.mappath("Clientes.mdb")
sql="select nome, endereco,email from Clientes"

set rs = Conn.Execute(sql)
rs.MoveFirst()

response.write("<?xml version='1.0' ?>")
response.write("<clientes>")
while (not rs.EOF)
response.write("<cliente>")
response.write("<nome>" & rs("nome") & "</nome>")
response.write("<endereco>" & rs("endereco") & "</endereco>")
response.write("<email>" & rs("email") & "</email>")
response.write("</cliente>")
rs.MoveNext()
wend

rs.close()
conn.close()
response.write("</clientes>")
%>

Até o momento, não tivemos a preocupação de gravar o arquivo gerado. Uma das formas de persistir o arquivo XML gerado é usar o objeto Microsoft.XMLDOM. No exemplo abaixo temos o código que realiza esta tarefa:

<%
'Instancia o objeto XMLDOM.
Set xmldoc = Server.CreateObject("MSXML2.DOMDocument.4.0")

'Nome e caminho completo de onde será salvo o arquivo
nome = "d:\teste\macoratti.xml"

'Carrega o arquivo se ele já existir
arquivo = xmldoc.Load(nome)

'Se o arquivo existe, então acaba o processo e destrói o objeto
if arquivo = True Then

Response.write "Arquivo já existente !"
Set xmldoc = nothing
Response.end

end if

'O método createElement adiciona os elementos
Set root = xmldoc.createElement("Macoratti.NET")
xmldoc.appendChild (root)

'O método createProcessingInstruction possui 2 argumentos: o TARGET = "xml" e DATA = "version='1.0' encoding='ISO-8859-1'"
Set inst = xmldoc.createProcessingInstruction("xml", "version='1.0'
encoding='ISO-8859-1'")
xmldoc.insertBefore inst, root

Set com = xmldoc.createComment("Documento xml de exemplo")
xmldoc.insertBefore com, root

Set onode = xmldoc.createElement("Opcoes")
onode.Text = "Tudo para Visual Basic, ASP, XML, SQL e muito mais..."

'O método appendChild adiciona um elemento filho ao elemento atual
xmldoc.documentElement.appendChild (onode)
Set inode = xmldoc.createElement("Visual Basic")
onode.appendChild (inode)

Set child = xmldoc.createElement("Opcao")
child.Text = "Tudo para Visual Basic e Visual Basic .NET"
inode.appendChild (child)

xmldoc.documentElement.appendChild (onode)
Set inode = xmldoc.createElement("ASP")
onode.appendChild (inode)

Set child = xmldoc.createElement("Opcao")
child.Text = "Tudo para ASP e ASP.NET"
inode.appendChild (child)

xmldoc.documentElement.appendChild (onode)
Set inode = xmldoc.createElement("Outros")
onode.appendChild (inode)

Set child = xmldoc.createElement("Opcao")
child.Text = "C# , XML, SQL, Crystal Reports e muito mais..."
inode.appendChild (child)

'Salva o arquivo no caminho definido
xmldoc.save (nome)

Response.write "Arquivo gerado e salvo !"

'Destruindo os objetos usados
Set xmldoc = Nothing
Set root = Nothing
Set inst = Nothing
Set com = Nothing
Set onode = Nothing
Set inode = Nothing
Set child = Nothing
Set onode = Nothing
Set inode = Nothing
Set child = Nothing
%>

Executando o arquivo acima, teremos o arquivo macoratti.xml gerado conforme figura abaixo:

image001.gif

Simples e objetivo, não é mesmo?

Até o próximo artigo ASP!

Abraços!

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?