Ir para conteúdo

POWERED BY:

Arquivado

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

rd111072

[Resolvido] Erro em newsletter ASP+XML

Recommended Posts

Bom dia moçada.

 

O seguinte: tenho um newsletter que estou desenvolvendo em cima de um exemplo que peguei neste forum, no Laboratório de Scripts.

 

Cadastro o e-mail e o nome numa boa mas quando vou voltar/exibir a página admin.asp está dando o seguinte erro:

 

Error Type:

msxml3.dll (0x80004005)

The stylesheet does not contain a document element. The stylesheet may be empty, or it may not be a well-formed XML document.

/2008_r/newsletter/admin.asp, line 7

 

A página asp é essa:

 

admin.asp

 

CODE
<%@Language=VBScript%>

<%

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

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

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

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

response.write(xmldoc.transformnode(xsldoc))

%>

o xml é este:

 

admin.xml

 

CODE
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"

xmlns="http://www.w3.org/TR/REC-html40">

<xsl:template match="/">

<html>

<body>

<a href="email_escrever.html">Escrever e-mail para cadastrados</a><br>

<center>

<table border="1">

<tr>

<td><b>Nome</b></td>

<td><b>E-Mail</b></td>

<td><b>Apagar</b></td>

</tr>

<xsl:for-each select="cadastro/usuario">

<tr>

<td><xsl:value-of select="nome"/></td>

<td><xsl:value-of select="email"/></td>

<td><a><xsl:attribute name="href">apagar.asp?email=<xsl:value-of select="email"/></xsl:attribute>Apagar</a></td>

</tr>

</xsl:for-each>

</table></center>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

Confesso que não tenho muita experiência com xml, mas por isso mesmo gostaria de experimentar esse esquema.

 

Alguém sabe como (me ajudar a) resolver???

 

Será que eu preciso instalar alguma coisa?

Por exemplo, essa dll: msxml3.dll ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa instalar nada mais cadê o arquivo "cadastro.xml"?

 

e você colocou ai "admin.xml" é isso mesmo ou é .xsl?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cadastro.xml

 

<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <cadastro>
- <usuario>
  <nome>Teste</nome> 
  <email>teste@</email> 
  </usuario>
- <usuario>
  <nome>Teste2</nome> 
  <email>teste2@</email> 
  </usuario>
- <usuario>
  <nome>rubens</nome> 
  <email>rubensxxx4@gmail.com</email> 
  </usuario>
- <usuario>
  <nome>cesar</nome> 
  <email>cesarac@zipmail.com</email> 
  </usuario>
  </cadastro>

Ted, é admin.xml mesmo. Pelo menos é como estava no exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

xmldoc.load(server.mappath("cadastro.xml"))
xsldoc.load(server.mappath("admin.xsl"))
observe bem que você chama um cadastro.xml e um admin.xsl

 

o admin.xsl é alimentado pelo cadastro.xml

 

aqui:

response.write(xmldoc.transformnode(xsldoc))

creio que você deve está se batendo com o nome dos arquivos e o que cada um contém!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, mas no post de onde peguei esse modelo não havia arquivo .xsl. Tentei aqui, salvando o arquivo admin.xml como admin.xsl , mas não funcionou...

 

Talvez seja preciso montar um arquivo xsl novo para receber este xml, mas não sei como fazê-lo...

 

Alguma luz???

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu crie esse script e tem lá man... mais deixa queto:

 

o arquivo xsl você já tem, é esse:

 

CODE
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"

xmlns="http://www.w3.org/TR/REC-html40">

<xsl:template match="/">

<html>

<body>

<a href="email_escrever.html">Escrever e-mail para cadastrados</a><br>

<center>

<table border="1">

<tr>

<td><b>Nome</b></td>

<td><b>E-Mail</b></td>

<td><b>Apagar</b></td>

</tr>

<xsl:for-each select="cadastro/usuario">

<tr>

<td><xsl:value-of select="nome"/></td>

<td><xsl:value-of select="email"/></td>

<td><a><xsl:attribute name="href">apagar.asp?email=<xsl:value-of select="email"/></xsl:attribute>Apagar</a></td>

</tr>

</xsl:for-each>

</table></center>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

 

creio que você deve está salvado ele no formato errado é isso que está dando erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que entendi, esse deve ser o arquivo admin.xsl. Pois bem:

está dando o mesmo erro.

 

O qe devo mudar para que funcione (além de xml para xsl)?

 

no Dreamweaver essas linhas aparecem destacadas em amarelo:

 

admin.xsl:

 

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" 
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:template match="/">
<html>
<body>

e

 

</xsl:template>
</xsl:stylesheet>

Compartilhar este post


Link para o post
Compartilhar em outros sites

repetindo esse arquivo acima não é para está com a extensão xml e sim XSL...

 

e se está amarelo é pq está quebrado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já mudei para xsl, como já disse e não funcionou.

 

obs: já editei acima.

 

O erro diz:

 

The stylesheet does not contain a document element. The stylesheet may be empty, or it may not be a well-formed XML document.

 

ou seja: a folha de estilo (xsl?) está vazia não é um documento XMl bem construído.

 

Tá. E aí?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

tirei o link a href

 

ficou assim:

 

admin.xsl

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"xmlns="http://www.w3.org/TR/REC-html40">
<xsl:template match="/">
<html>
<body>
<center>
<table border="1">
<tr>
<td><b>Nome</b></td>
<td><b>E-Mail</b></td>
<td><b>Apagar</b></td>
</tr>
<xsl:for-each select="cadastro/usuario">
<tr>
<td>
<xsl:value-of select="nome"/></td>
<td><xsl:value-of select="email"/></td>
<td><a><xsl:attribute name="href">apagar.asp?email=<xsl:value-of select="email"/></xsl:attribute>Apagar</a></td>
</tr>
</xsl:for-each>
</table>
</center>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

deu o mesmo erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

verdade, testei aqui esse seu e reparei você colocando tags que não faz parte do xsl:

 

mais concertei e agora vai de boa

 

troque isso:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"xmlns="http://www.w3.org/TR/REC-html40">

por isso:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

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.