Ir para conteúdo

POWERED BY:

Arquivado

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

[ GuTo ]

Microsoft.XMLDOM + ASP 3.0 + XML

Recommended Posts

Fala pessoal, beleza?

 

Existe uma página aqui na intranet que gero um documento xml usando ASP e passando uma querystring, para ele pegar membros de um grupo especifico, ex.: http://localhost/xxx.asp?chave=VALOR

 

Veja um exemplo do XML retornado:

<?xml version="1.0" encoding="ISO-8859-1"?><grupo chave="VALOR">	<membro id="membro-1">		<dominio>aaa</dominio>		<conta>0123456</conta>		<nome>nome</nome>	</membro>	<membro id="membro-2">		<dominio>aaaa</dominio>		<conta>0123489</conta>		<nome>nome 2</nome>	</membro>	<membro id="membro-3">		<dominio>bbbbb</dominio>		<conta>0123487</conta>		<nome>nome 3</nome>	</membro></grupo>
Agora em uma nova página preciso pegar os dados gerados desse documento e exibi-los, ex.: http://localhost/xxx.asp?chave=VALOR

 

Estava tentando algo como:

<table>	<thead>		<tr>			<th>Dominio</th>			<th>Conta</th>			<th>Nome</th>		</tr>	</thead>	<tbody><%dim objXML, membrosset objXML = Server.CreateObject("Microsoft.XMLDOM")''''''objXML.setProperty "ServerHTTPRequest",false'--------------------- MÉTODO LOAD, MINHA DUVIDA - INICIOobjXML.load("xxx.asp?chave="& Request.QueryString("chave") )'--------------------- MÉTODO LOAD, MINHA DUVIDA - FIMobjXML.async = falseIf objXML.parseError.errorCode <> 0 Then	 Response.write "handle the error: "& objXML.parseError.reason	 Response.endEnd If Set membros = objXML.getElementsByTagName("membro")'if isArray(membros) then	for each item in membros%>		<tr>			<td><%=item.childNodes(0)%></td>			<td><%=item.childNodes(1)%></td>			<td><%=item.childNodes(2)%></td>		</tr><%	next'else	Response.Write "nao eh array"'end ifset membros = nothingset objXML = nothing%>	</tbody></table>
Então, percebam que no método load eu chamo uma página .asp que GERA aquele documento xml na hora. Não sei se é esse o problema, pois os exemplos que vi na internet chamam um arquivo físico no servidor e que tenha a extensão .xml.

Por isso, não sei se ele aceita esse load dinâmico, mesmo sendo rodado localmente.

 

O erro retornado:

The system cannot locate the resource specified.

Se alguém puder ajudar, agradeço.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor,Se alguém souber uma referência/link para a documentação de algum destes componentes abaixo, agradeço.- Microsoft.XMLHTTP- Microsoft.XMLDOMProcurei bastante, mas não achei. :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou passar o caminho completo ali?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cuma?Por favor, exemplifique.Eu antes de chamar o método load ali, tentei usar o XMLHTTP para retornar o xml (texto) retornado, mas nem isso rolou.Não sei se poderia ser o servidor aqui da empresa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guto..

Vamos lá !!!

 

 

'Obtendo o XML do servidorSet objXMLHttp = Server.CreateObject("MSXML2.XMLHTTP")Set objDOm	= Server.CreateObject("MSXML2.DomDocument")objXmlHttp.open "GET","http://www.url.com.br"objXMLHttp.send

1º Tente assim

Set objDom = objXmlHttp.responseXML	Set membros = ObjDom.getElementsByTagName("membro")		For i = 0 To membros.length  -1			membros.item(i).choldNodes(0) & "<br>"			membros.item(i).choldNodes(1) & "<br>"			membros.item(i).choldNodes(2) & "<br>"		Next	Set membros = nothingSet objDom = nothingSet objXMLHttp = Nothing
Se não der certo..Tente assim

strXML = objXmlHttp.responseXMLSet objDom.loadXML(strXML)	Set membros = ObjDom.getElementsByTagName("membro")		For i = 0 To membros.length  -1			membros.item(i).choldNodes(0) & "<br>"			membros.item(i).choldNodes(1) & "<br>"			membros.item(i).choldNodes(2) & "<br>"		Next	Set membros = nothingSet objDom = nothingSet objXMLHttp = Nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

Response object error 'ASP 0185 : 80020003' Missing Default Property /piloto/ret-teste.asp, line 0 A default property was not found for the object.

<%'Option Explicit'Response.expires = 0Response.Buffer = true'Response.ContentType = "text/xml"'Obtendo o XML do servidordim objXMLHttp'set objXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")' ##### 1set objXMLHttp = Server.CreateObject("MSXML2.XMLHTTP")		 ' ##### 2'Set objXMLHttp = Server.CreateObject("Microsoft.XMLHTTP")	 ' ##### 3 - OLD VERESIONdim cURLcURL = "http://localhost/xxx.asp?chave=VALOR2"'cURL = "http://www.jsfromhell.com/atom.xml"objXmlHttp.open "GET",cURL,falseobjXMLHttp.sendif objXMLHttp.readyState = 4 then	if objXMLHttp.status = 200 then		Response.write objXMLHttp.responseXML	else		Response.Write objXMLHttp.status & ": " & objXMLHttp.statusText		if err.number <> 0 then Response.Write err.Description 	end ifend ifset objXMLHttp = nothing%>
Dependendo, dá o erro 401 (acesso negado) ou 500 (internal server error)

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, aqui na empresa, como é intranet, é tudo da M$ e usamos o IE.Indo em: Ferramentas > Opções da internet > Conexões > Configuração da Lan... Tem lá:

[checkado] Usar servidor proxy para a rede local. bla bla blaEndereço: blablaPorta: 8080

Bem, como eu poderia contornar isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega.

Teremos que usar outro componente. O WinHttRequest

Esse componente é nativo do Win2000 e XP, não existe no Win98.

Em veradade, foi ele quem inspirou a criação do XMLHttp

 

Abaixo segue código para passar pelo Proxy com este componente.

 Set objWin = Server.CreateObject("WinHttp.WinHttpRequest.5.1") Set objXML = Server.CreateObject("MSXML2.DomDocument") objWin.Open "POST",dsURL,False objWin.SetProxy 2,"NomeServidorProxy:8080" objWin.SetCredentials "UsuarioRede","SenhaUsuarioRede",1 objWin.SetRequestHeader "Content-Type","text/xml" objWin.Send objParametro 	strXML = objWin.ResponseText	 Call objXMl.LoadXML(strXML)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,Sempre que chego na empresa, preciso me logar no PC.Coloquei meu usuário e senha ali e não rolou. É outro usuário e senha ali?Procurei documentação no MSDN, mas só achei relacionados a ASP.NET.E dei uma googleada e achei exemplos que nem o seu, nada a mais.Valeu.

WinHttp.WinHttpRequest error '80072eef' The login request was denied

O erro dá na linha do objWin.Send' objParametro '-- comentei pq nao pelo q vi nada é necessário aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guto.Você se loga em um servidor local (na sua máquina) ou em um domínio?Na minha empresa eu me logo em em domínio.Assim utilizo o usuário indicando o domínio, por exemploLogin = "AGFBRasil\mebkopcznski"Senha = "senha"Tenta assim !

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.