Foros del Web » Programando para Internet » ASP Clásico »

xml en ASP

Estas en el tema de xml en ASP en el foro de ASP Clásico en Foros del Web. bueno amigos chequeen este link...lo postee en el foro de XML pero nadie lo ha leido :( ...parece que no hay mucha gente ligado con ...
  #1 (permalink)  
Antiguo 24/08/2002, 20:03
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
xml en ASP

bueno amigos chequeen este link...lo postee en el foro de XML pero nadie lo ha leido :( ...parece que no hay mucha gente ligado con esto...

<a href='ir.asp?http://www.forosdelweb.com/mensaje.asp?id=97578' target='_blank'>http://www.forosdelweb.com/mensaje.asp?i...</a>

mi idea es pasar un xml a una variable string y enviarla via post a otro sitio...
tb averigue algo del metodo request en xml (DOM) pero no lo manejo bien..

si alguien me puede ayudar a pasar este xml (con estructura y datos) a una variable me ayudaria mucho.

tenkiu. ;)
  #2 (permalink)  
Antiguo 25/08/2002, 16:09
 
Fecha de Ingreso: julio-2002
Mensajes: 106
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: xml en ASP

EStoy averiguando obre el tema, por mientras visita esta url....


http://www.lawebdelprogramador.com/cursos/mostrar.php?id=124&amp;texto=XML

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<img src="http://pukem.face.ubiobio.cl/sapi/gta2.jpg">

"And Remember...Respect is everything.
  #3 (permalink)  
Antiguo 25/08/2002, 17:07
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

Hola:

Te sugiero que no lo conviertas a cadena, sino que envies directamente el documento xml hacia la página que quieres que la procese; para eso tienes que usar los siguiente objetos.

1.-Microsoft.XMLDOM
2.-Microsoft.XMLHTTP

con el primero instancias un objeto xml ya sea desde un archivo o creandolo tu mismo. Si lo cargas de un archivo el metodo es:
--------------
xmldom.Load()
--------------

con el segundo defines primero a quien vas a enviarloselo, mediante el metodo.
---------------------
xmlHTTP.open &quot;POST&quot;, &quot;http://200.40.19.94/TUMSACWEB/BIZTALK/TUMSACReceivesb.asp&quot;, false
---------------------
y a continuación realizas el envio.
-------------------
xmlHTTP.send xmldom
-------------------

Si buscas en la web info sobre estos objetos vas a encontrar mucha información.

Espero haber podido ayudarte.

saludos!!

  #4 (permalink)  
Antiguo 26/08/2002, 08:35
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

henryzs!!

era justamente lo que andaba buscando... bueno amigo pondre en practica tus consejos..

te estoy avisando como me va.

:)

<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #5 (permalink)  
Antiguo 26/08/2002, 11:54
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

henryzs..

avance en este tema..ahora tengo dos consultas..

1° puedo imprimir mi_xml que envio a otra pagina antes de enviarlo (solo para ver si lo cargo bien?)..

2° como recepciono mi xml en mi segunda página?...

tengo esto hasta el momento (pagina de envio)

envio_xml.asp

Código:
  
DIM xmlhttp
DIM sMETODO,xmlAsString
DIM sURL,sXML,mi_xml
	
'METODO QUE SE ENVIARA EL MENSAJE
sMETODO = &quot;POST&quot; 
	
sURL = &quot;http://bancos02/Ingreso.asp&quot;
	
set mi_xml = Server.CreateObject(&quot;Msxml2.DOMDocument&quot;) 
mi_xml.async = false
on error resume next
 mi_xml.LoadXML(&quot;/sessiones/banda.xml&quot;)
'DE ESTAS DOS FORMAS PROBE IMPRIMIR Y ME MANDA ERROR
'Response.Write &quot;mi_xml=&quot; &amp; server.HTMLEncode(mi_xml) &amp; &quot;&lt;br&gt;&lt;br&gt;&quot;
'Response.Write mi_xml.doc

if err.number&lt;&gt;0 then  		
	Response.Write err.Description 
end if
		
set xmlhttp = server.Createobject(&quot;MSXML2.ServerXMLHTTP&quot;)
on error resume next
xmlhttp.Open sMETODO, sURL, false
xmlhttp.setRequestHeader &quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;
xmlhttp.send &quot;TBKPatData=&quot; &amp; sDATA
Response.ContentType = &quot;text/xml&quot;
			
if err.number &lt;&gt; 0 then
	Response.Write  err.Description 
        Response.End 
end if
	
sXML = xmlhttp.responseXML.xml

response.redirect &quot;recepcion.asp&quot;
gracias por tu ayuda




<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #6 (permalink)  
Antiguo 26/08/2002, 12:17
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

Hola:

Empezando por la segunda pregunta; la página que recibe el xml debe de ser mas o menos asi (para leer usa el metodo load). Te adjunto un código que simulaba al biztalk

-------------------------------------------
&lt;%

set xmldom = server.CreateObject(&quot;Microsoft.XMLDOM&quot;)
xmldom.Load(Request)

'Instanciando elemento raiz e hijos
set rootnode = xmldom.documentElement
set children = rootnode.childNodes

'Obteniendo Numero de Orden de Compra
for each atributo in rootnode.attributes

'Código del pedido
if atributo.name = &quot;Pedido_id&quot; then
strPedido = atributo.value
end if

'Código del item
if atributo.name = &quot;Item_id&quot; then'
strItem = atributo.value
end if

'Estado del item
if atributo.name = &quot;Estado_item&quot; then'
strEstado = atributo.value
end if

'Estado del item
if atributo.name = &quot;Fecha_Update&quot; then'
strFecha = atributo.value
end if


next

xmldom.save(server.MapPath(&quot;recibidos\&quot; + strPedido + &quot;-&quot; + strItem + &quot;.xml&quot; ))

set objEnvioXml = server.CreateObject(&quot;TiendaVirtual.clsOrden&q uot;)
objEnvioXml.actualizaItem cstr(strPedido),cstr(strItem),cstr(strEstado)

set objEnvioXml = Nothing
set xmldom = Nothing

%&gt;
  #7 (permalink)  
Antiguo 26/08/2002, 12:28
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

ok..

eso me quedo claro...mi problema es que ahora encuentro con algo que esta mal en la pagina de ingreso y no se como arreglarlo

tengo esto:
'cargo mi xml
mi_xml.LoadXML(&quot;banda.xml&quot;)

y envio el xml asi:

xmlhttp.Open &quot;POST&quot;, &quot;http://mi_sitio/recepcion.asp&quot;, false

xmlhttp.send mi_xml

y me arroja un gigantesco error...
que tengo que hacer...

tengo mi xml como archivo y es eso lo que quiero enviar y no me funciona ni por casualidad...

esto ya me esta empezando a molestar un pokito

jeje..help..help

<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #8 (permalink)  
Antiguo 26/08/2002, 12:34
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

Para pintarlo has directamente:
-----------------------------------
Response.ContentType = &quot;text/xml&quot;
Response.write mydoc.xml
-----------------------------------

Si manejas xsl entonces.
---------------------------
Dim myXML,myXSL
myXML=Server.CreateObject(&quot;Microsoft.XMLDOM&q uot;)
myXSL=Server.CreateObject(&quot;Microsoft.XMLDOM&q uot;)

myXSL.load &quot;xsl_path&quot;
strHTML = mydoc.transformNode(myXSL.documentElement)
Response.write strHTML

saludos!!
  #9 (permalink)  
Antiguo 26/08/2002, 12:40
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

hola:

cuando se realiza el load automaticamente se verifica que el documento este &quot;BIEN FORMADO&quot; (Si quieres validarlo tienes que usar XSL), en caso no este bien formado entonces te arroja un error.

Cuando se ejecuta el metodo open con el url de la pagina de recepcion automaticamente se intenta una conexión; si falla tambien lanza un error.

Para ambos casos tienes que manejarlo usando el Error Resume Next para detectar el error correspondiente:

* El documento esta mal formado.
* No se pudo establecer conexión con el url entregado.

saludos!!
  #10 (permalink)  
Antiguo 26/08/2002, 12:42
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

yap..creo que estoy progresando..

para empezar para leer el xml tuve que hacer esto:

mi_xml.load(Server.MapPath(&quot;banda.xml&quot;))

...ahora pinta mejor la cosa...cuando logre imprimir el xml te avisare...(a todo esto si el xml es muy grande no hya problemas de impresion cierto?)



<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #11 (permalink)  
Antiguo 26/08/2002, 12:42
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

Hola otra vez:

Solo para decirte que obvies el comentario de usar xsl para validar, me equivoque, para validar se tiene que usar DTD o un SCHEMA, el xsl es para cambiar la presentación del documento.

saludos!!
  #12 (permalink)  
Antiguo 26/08/2002, 12:45
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

eyyyyyyyyyy........lo imprimi..
uf..ke costo esto..

te aviso cuando haga el proceso de envio..ahora me voy a almorzar

:P

<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #13 (permalink)  
Antiguo 26/08/2002, 14:18
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

yap..

ahora lo que me falta es leer el xml que envie via HTTP...

como lo hago?..tu me posteaste esto

set xmldom = server.CreateObject(&quot;Microsoft.XMLDOM&quot;)
xmldom.Load(Request)

en el Request debo colocar algo?...porke con esto no me imprime nada...

tengo esto en mi pagina de recepcion:

Código:
  
&lt;%
set mi_xml = Server.CreateObject(&quot;Msxml2.DOMDocument&quot;) 
mi_xml.async = false
on error resume next
mi_xml.Load(Request)
Response.ContentType = &quot;text/xml&quot; 
Response.Write mi_xml.xml 
if err.number &lt;&gt;0 then
 Response.Write err.Description 
end if
%&gt;


<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #14 (permalink)  
Antiguo 26/08/2002, 15:12
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

ya se donde esta mi error...el problema es que no se como arreglarlo..

enviando el xml no hay problema

set xmlhttp = server.Createobject(&quot;MSXML2.ServerXMLHTTP&quo t;)
on error resume next
xmlhttp.Open sMETODO, sURL, false
xmlhttp.setRequestHeader &quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;
xmlhttp.send &quot;XML_ENVIO=&quot; &amp; mi_xml.xml

pero como viajo junto con mi XML a la pagina de envio...despues de esto hice un response.redirect sURL pero viajo a la otra pagina sin el XML..

como?..como viajo junto con el xml a la pagina de recepcion¿?

..esto me esta kedando como poncho..&quot;

<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #15 (permalink)  
Antiguo 26/08/2002, 15:59
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

Hola:

Primero:
Response.Write mi_xml.xml &lt;== esto debe ser un objeto xml y no un file (tiene una extensión)

Segundo:
Al enviar el documento a otra entidad, esta toma su propio curso.

Te cuento un poco la situación cuando desarrolle la funcionalidad con xml.
Mi aplicación (tienda virtual) generaba una orden de compra (documento xml) el cual tenia que ser entregado a OTRA APLICACIÓN (Almacen) para que pueda procesar la orden y entregar la mercaderia. Mi aplicación no tenia control alguno sobre la página que recibia el documento XML (Pues se trataba de una aplicación que podria estar hecha en java corriendo sobre solaris), es decir una plataforma totalmente distinta; lo que si hacia era disponer de una página que recibia la respuesta de la aplicación (Almacen envia xml de vuelta con info de que la orden fue aceptada y en proceso de entrega) el cual actualizaba la bd de MI APP para luego mostrar al cliente el estado de su pedido.
Este proceso era obviamente off line.

Lo que tu puedes hacer es que una vez que hayas enviado el documento xml, toda la lógica restante que se supone deberia estar en la página de envio la coloques en la página de recepción; simulando la unicidad del proceso (Que en realidad son 2 procesos distintos).

Saludos!!

  #16 (permalink)  
Antiguo 26/08/2002, 16:11
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

aggggrrr...

esto me tiene enfermo...

a ver...

entiendo lo que hiciste pero lamentablemente tengo que viajar a la pagina que envio el xml..

si es via POST para rescatar las variables que envio basta con hacerle un

Response.write Request.Form

y supuestamente me dira ls variables que me llegan..pero no pasa nada amigo...

el .send lo hace bien porque no me arroja error...pero yo se que aqui esta el problema:

xmlhttp.Open &quot;POST&quot;, &quot;http://bancos02/recepcion.asp&quot;, false
xmlhttp.send mi_xml.xml

response.redirect recepcion.asp

esto me tiene loco..se supone que es una tontera y no quiere funcionar...



<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #17 (permalink)  
Antiguo 26/08/2002, 17:45
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: xml en ASP

Hola:

Al hacer un send y luego response.redirect
a la misma página es como si 2 usuarios disntintos hagan un request de la misma pagina, por lo tanto, no compartiran ninguna información.

Lo que tratas de hacer tal como lo planteas, me parece que no se puede usando el componente xmlhttp. Quizas necesites plantear una solución diferente.
Disculpa por no poder seguir ayudandote.

saludos!!
  #18 (permalink)  
Antiguo 26/08/2002, 17:50
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

hhhmmm...

quizas tengas razon...si yo sabia que el problema era realizar un send y despues redirect a la misma pagina...

quizas lo si pueda hacer seria enviar el xml a una pagina previa...procesar los datos como quiero en esa pagina previa..y hacer un redirect a una segunda pagina donde ya tenga los datos procesados...

esperemos que esto si funcione...si no...a buscar otro metodo...

gracias por tu ayuda!

te cuento cualkier novedad.

cambio y fuera





<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
  #19 (permalink)  
Antiguo 27/08/2002, 13:53
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: xml en ASP

Bueno para los que leyeron este post y les interese...despues de 2 dias de trabajo logre realizar mi proposito...asi ke como dice vgaray &quot;Tan libre como gratuito&quot;.

1.-La idea era enviar un xml desde un sitio virtual hacia otro. Tengo un xml en

<a href='ir.asp?http://www.mi_sitio.com/session/banda.xml ' target='_blank'>www.mi_sitio.com/session/banda.xml ...</a>

y deseo enviarlo y guardarlo en

<a href='ir.asp?http://www.otro_sitio.com/session/nuevo_xml.xml' target='_blank'>www.otro_sitio.com/session/nuevo_xml.xml...</a>

2.-Para esto se necesita una pagina de envio.asp que estara alojada en www.mi_sitio.com y una pagina de receepcion.asp ubicada en www.otro_sitio.com

Envio.asp
Código:
  
&lt;%
DIM mi_xml,strPostXML
	
set mi_xml = Server.CreateObject(&quot;Msxml2.DOMDocument&quot;) 
mi_xml.async = false
on error resume next
  'carga del xml
  mi_xml.load(Server.MapPath(&quot;/sessiones/banda.xml&quot;))
  strPostXML = mi_xml.xml
  if err.number&lt;&gt;0 then  		
    Response.Write err.Description 
    Response.End 
  end if
		
set mi_xml = nothing
%&gt;			
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;form name=formulario method=post action=&quot;www.otro_sitio/recepcion.asp&quot;&gt;
&lt;input type=hidden name=xml value=&quot;&lt;%=strPostXML%&gt;&quot;&gt;
&lt;script language=&quot;javascript&quot;&gt;
	document.formulario.submit();
&lt;/script&gt;

&lt;/form&gt;
&lt;/html&gt;
recepcion.asp

Código:
  
&lt;%
function fct_Session_Guardar(ObjXml)
 on error resume next
  ObjXml.save(server.MapPath(&quot;sessiones/nuevo_xml.xml&quot;))
  if err.number &lt;&gt; 0 then
   fct_Session_Guardar = false
  else
   fct_Session_Guardar = true
  end if
end function

set objXML=server.CreateObject(&quot;MSXML2.DOMDocument&quot;)
'carga del xml
objXML.loadXML request(&quot;xml&quot;)

fct_Session_Guardar objXML
Response.Write &quot;Guardado&quot;
PD:gracias a la colaboracion de henryzs

<center><font face=verdana size=1 color=blue>¸„.-·~¹°”ˆ˜¨Bakanzipp¨˜ˆ”°¹~·-.„¸[/CODE]</center>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:46.