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

Crear un XML desde ASP

Estas en el tema de Crear un XML desde ASP en el foro de ASP Clásico en Foros del Web. Buenas tardes amigos de Foro: En esta ocacion espero me puedan orientar.... tengo que crear un XML desde ASP, el cual sera leido desde paginas ...
  #1 (permalink)  
Antiguo 07/06/2005, 12:58
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación Crear un XML desde ASP

Buenas tardes amigos de Foro:
En esta ocacion espero me puedan orientar.... tengo que crear un XML desde ASP, el cual sera leido desde paginas ASP y al mismo tiempo desde Presentaciones en Flash....

Este XML solo debera contener 3 datos... el codigo ( de 4 caracteres ), el Nombre ( digamos de 50 carateres ) y el tipo ( de 10 carateres )...

ya tengo como leer el contenido desde ASP y desde Flash, lo que me faltaria es como Crear un XML y se guarde en el Disco Duro.

Muchas gracias por su aportes
Atte

Jorge Diaz
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
  #2 (permalink)  
Antiguo 07/06/2005, 13:01
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Una forma tradicional es incrementar el valor de una variable para ir creando tu XML, como un string, solamente teniendo cuidado de que sea un XML bien formado, al final, tienes que crear mediante el FSO, un archivo con extension .xml y escribir el contenido de tu variable.

Y chaz, eso es todo!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 07/06/2005, 14:41
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0

Me piden tener en un XML dos valores... el Codigo y el Nombre... que se almacene en C:\ para despues ser leido por paginas ASP y presentaciones en Flash.
Estuve investigando y hasta aqui es donde llegue, me podrias indicar en que parte esta fallando por favor ya que lo que graba no lo puede leer:
Para leer un XML uso el siguiente Codigo

<%@Language=VBScript CODEPAGE="1252"%>
<%
Option Explicit
Response.Buffer = True
Dim xml, codigo, nombre
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.load "C:\registro.xml"
codigo = xml.documentElement.childNodes(0).text
nombre = xml.documentElement.childNodes(1).text
Set xml = Nothing
%>
<html>
<head><title></title></head>
<body>
<table width="220" border="1" cellpadding="2" cellspacing="2">
<caption><b>Calores de un XML </b></caption>
<tr><td width="50%">C&oacute;digo</td><td width="50%"><%=codigo%></td></tr>
<tr><td>Nombre</td><td><%=nombre%></td></tr>
</table>
</body>
</html>


Por otra parte para Crear un XML estoy usando el Siguiente Código:

<%@Language=VBScript%>
<%
Dim objXML, objNews, objCabecera
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
Set objXML.documentElement = objXML.createElement("main")
Set objNews = objXML.createElement("deta")
' Crea los Sub Item
objNews.appendChild objXML.createElement("codigo")
objNews.appendChild objXML.createElement("nombre")
'Asignar Valores a los SubItem
objNews.childNodes(0).text = "Codigo"
objNews.childNodes(1).text = "Nombre"
objXML.documentElement.appendChild objNews.cloneNode(true)
Set objCabecera = objXML.createProcessingInstruction("xml","version= '1.0'")
'agregamos la cabecera antes del elemento raiz
objXML.insertBefore objCabecera, objXML.childNodes(0)
'finalmente grabamos el XML en disco duro
objXML.Save "c:\registro.xml"
Response.Write "Archivo XML Creado 01"
%>
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
  #4 (permalink)  
Antiguo 07/06/2005, 14:42
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Que error te envia?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 07/06/2005, 15:05
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0
El error q me devuelve es:

Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: 'documentElement.childNodes(...)'
/ArtiWeb/xmlread.asp, line 10
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
  #6 (permalink)  
Antiguo 07/06/2005, 15:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Probablemente no está cargando el archivo, trata añadiendo estas líneas inmediatamente después de hacer la carga:

Código:
		if xml.parseError.errorCode <> 0 Then
			Set er = xml.parseError
			Response.Write er.reason
                                       Response.End
		End if
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 08/06/2005, 08:43
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación crear XML desde ASP

Ante todo muchas gracias por tu ayuda...

Lo que me piden es crear un XML con la siguiente estructura..
El Archivo XML
<?xml version="1.0"?>
<main>
<cod>001</cod>
<nom>Nombre y Apellido</nom>
</main>

Espero me puedan ayudar con este tema..

Atte

Jorge Diaz
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
  #8 (permalink)  
Antiguo 08/06/2005, 11:26
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación Como crear un XML desde ASP

Aqui tengo el Codigo que use para cumplir dicho dilema.. pero tengo el inconveneinte de que es Imperante crearlo solo una vez y de ahi solo modificar su valor....

Gracias de Antemano...

Atte
Jorge Diaz
<%
On Error Resume Next
addNewContacttoXML "c:","registro01.xml"
If err.number <> 0 then
Response.write("Errors, no se pudo grabar los datos")
Else
Response.write("Datos Grabados Correctamente")
End If

Function addNewContacttoXML(strXMLFilePath, strFileName)
Dim objDom, objRoot, objField
Dim objPI, blnFileExists, x
Set objDom = server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace = True
blnFileExists = objDom.Load(strXMLFilePath & "\" & strFileName)
If blnFileExists = True Then
Set objRoot = objDom.documentElement
Else
Set objRoot = objDom.createElement("main")
objDom.appendChild objRoot
End If

Set objField = objDom.createElement("cod")
objField.Text = "CGA"
objRoot.appendChild objField
Set objField = objDom.createElement("nom")
objField.Text = "Carlos Garay"
objRoot.appendChild objField

If blnFileExists = False then
Set objPI = objDom.createProcessingInstruction("xml", "version='1.0'")
objDom.insertBefore objPI, objDom.childNodes(0)
End If
objDom.save strXMLFilePath & "\" & strFileName
Set objDom = Nothing
Set objRoot = Nothing
Set objField = Nothing
Set objPI = Nothing
End Function
%>
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
  #9 (permalink)  
Antiguo 08/06/2005, 11:54
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Pero hiciste la prueba que te dije?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 08/06/2005, 12:06
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0
Modificar un XML desde ASP

Gracias por responder.... hice la prueba y funciono sin problemas.... el error estaba en que el antiguo ASO q usaba creaba otra estructura.... por eso no podia leerlo.

Ahora tengo otro caso posterior al anterior... una vez que ya se logra crear el XML ahora me piden se pueda modificar... pues los ASP asi como los SWF estan seteados a un solo valor... o en el mejor de los casos al ultimo valor insertado...

Esta seria la estructura del XML en cuestion.

<?xml version="1.0"?>
<main>
<cod>001</cod>
<nom>Nombre01</nom>
</main>

Donde solo se deberia modificar el valor de Cod digamos 001 por 002, asi como el Nom....
O en le mejor de los casos si se insertara otro registro

<?xml version="1.0"?>
<main>
<cod>001</cod>
<nom>Nombre01</nom>
<cod>002</cod>
<nom>Nombre02</nom>
</main>

Capturar solo el valor 002.

Muchas Gracias de Antemano...


Atte

Jorge Diaz
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
  #11 (permalink)  
Antiguo 08/06/2005, 14:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 19 años, 7 meses
Puntos: 0
No es de gran ayuda... pero no creo que esté de más decirlo.

Haces bien en utilizar el XMLDOM para crear el XML. NUNCA utilicéis el FileSystemObject para crear un archivo de texto y renombrarlo como XML, ya que las tildes, eñes y demás caracteres extraños no los interpretan bien.

Desgraciadamente me he topado con ese problema recientemente en mi trabajo y no veas si jode :P.

  #12 (permalink)  
Antiguo 09/06/2005, 09:56
Avatar de The_Pretorian  
Fecha de Ingreso: diciembre-2004
Ubicación: Lima - Peru
Mensajes: 267
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación Modificar un XML desde un ASP

Buenos Dias Amigos de Foro:
Continuando en la solución a mi problema, encontre una funcion que mas o menos se ajusta a lo que me piden.
Bueno la idea es mandar un parametro a la funcion y esta la busque y modifique en el XML. Por ejemplo Busque '001' y lo reemplaze por '002'.

1ero Les mostrare el Archivo XML que estamos usando
-----
<?xml version="1.0"?>
<main>
<cod>001</cod>
<nom>Nombre</nom>
</main>
-----

A continuacion la funcion que encontre, espero me puedan brindar su apoyo una vez mas.

-----
<%@Language=VBScript Codepage="1252"%>
<%
Function updateXML(strNuevoValor)

Dim objDom, objRoot, objContact
Dim objField, strNewEMail
'Instantiate the XMLDOM Object.
set objXML = Server.CreateObject("Microsoft.XMLDOM")
'Turn off asyncronous file loading.
objXML.async = false
'Load the XML file.
objXML.load "C:\regsitro.xml"
'Set the objRoot variable equal to the root element of the XML file by
'calling the documentElement method of the objDOM (XMLDOM) object.
Set objRoot = objXML.documentElement
'Set a reference to the node (record) of the contact that we are
'editing by calling the SelectSingleNode method and passing it the
'e-mail address of the contact we are editing.
Set objContact = objRoot.SelectSingleNode("contact[field/field_value='"
& strNuevoValor & "']")
'Iterate through the form colllection of the request object updating
'the values of the XML record.
For each objItem in Request.Form
Set objField = objContact.selectSingleNode("field[@id='" & objItem & "']/field_value")
objField.text = Request.Form(objItem)
Next
'After the XML file has been edited, is must be saved.
objXML.save strXMLFile
End Function
%>
-----


de antemano Muchas Gracias

Atte

Jorge Diaz
__________________
Creo que todas las cosas suceden por algo, no es eso que los demas llaman 'Destino'. Definitivamente Dios no juega a los dados...
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 16:42.