Está usted en Indice > Construcción > Lenguajes > ASP > Lecciones y Paso a Paso > Desarrollo de un libro de visitas usando XML y ASP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Desarrollo de un libro de visitas usando XML y ASP (2)

El código ASP


Por último, necesitamos dos rutinas escritas en VBScript (o JSCript) para realizar la transformación XML a HTML, y para añadir elementos item al documento XML a partir de un formulario en HTML.

El código para realizar la transformación es muy simple usando el parser de Microsoft.

xmlDoc = "data.xml"
xslDoc = "gbook.xsl"

Set xmlObj = CreateObject("Microsoft.XMLDOM")
xmlObj.Async = False
xmlObj.Load(Server.MapPath(xmlDoc))

Set xslObj = CreateObject("Microsoft.XMLDOM")
xslObj.Async = False
xslObj.Load(Server.MapPath(xslDoc))

Response.Write(xmlObj.transformNode(xslObj))
Set xmlObj = nothing
Set xslObj = nothing
El código para añadir un elemento item al documento XML, se basa en crear el nodo item en una cadena de texto, cargar la cadena de texto en una instancia del parser, y utilizar el método appendChild del DOM para añadirlo al documento XML que almacena nuestros datos.

stringNuevo = vbCrLf & "<item>" & vbCrLf & _
"<author>" & nombre & "</author>" & vbCrLf & _
"<email>" & email & "</email>" & vbCrLf & _
"<datetime order=""" & orden & """>" & fecha & "</datetime>" & vbCrLf & _
"<ip>" & ip & "</ip>" & vbCrLf & _
"<text>" & text & "</text>" & vbCrLf & _
"</item>" & vbCrLf & vbCrLf

Set xmlObj = CreateObject("Microsoft.XMLDOM")
xmlObj.Async = False
xmlObj.Load(Server.MapPath("data.xml"))

Set xmlObj2 = CreateObject("Microsoft.XMLDOM")
xmlObj2.Async = False
xmlObj2.LoadXML(stringNuevo)

Set root = xmlObj.documentElement
Set root2 = xmlObj2.documentElement

root.appendChild(root2)
xmlObj.Save(Server.MapPath("data.xml"))

Set xmlObj = nothing
Set xmlObj2 = nothing
Por fin, integrando este código en un solo fichero .ASP, y haciendo que el formulario se llame a si mismo:

<% If Len(Trim(nombre))=0 Then
okay = False
mensaje = mensaje & "El nombre es obligatorio. "
End If

If Len(Trim(texto))=0 Then
okay = False
mensaje = mensaje & "El texto es obligatorio. "
End If

ip = Request.ServerVariables("REMOTE_HOST")

fecha = Day(Now) & "-" & Month(Now) & "-" & Year(Now)
fecha = fecha & " (" & Hour(Now) & ":"
If Minute(Now)<10 Then fecha=fecha & "0"
fecha = fecha & Minute(Now) & ")"

orden = Year(Now)

If Month(Now)<10 Then orden=orden & "0"
orden = orden & Month(Now)

If Day(Now)<10 Then orden=orden & "0"
orden = orden & Day(Now)

If Hour(Now)<10 Then orden=orden & "0"
orden = orden & Hour(Now)

If Minute(Now)<10 Then orden=orden & "0"
orden = orden & Minute(Now)

stringNuevo = vbCrLf & "<item>" & vbCrLf & _
"<author>" & nombre & "</author>" & vbCrLf & _
"<email>" & email & "</email>" & vbCrLf & _
"<datetime order=""" & orden & """>" & fecha & "</datetime>" & vbCrLf & _
"<ip>" & ip & "</ip>" & vbCrLf & _
"<texto>" & texto & "</texto>" & vbCrLf & _
"</item>" & vbCrLf & vbCrLf

If okay Then
Set xmlObj = CreateObject("Microsoft.XMLDOM")
Set xmlObj2 = CreateObject("Microsoft.XMLDOM")

xmlObj.Async = False
xmlObj.Load(Server.MapPath("data.xml"))

xmlObj2.Async = False
xmlObj2.LoadXML(stringNuevo)

Set root = xmlObj.documentElement
Set root2 = xmlObj2.documentElement

root.appendChild(root2)
xmlObj.Save(Server.MapPath("data.xml"))
Set xmlObj = nothing
Set xmlObj2 = nothing
nombre = ""
email = ""
texto = ""
End If
Else
nombre = ""
email = ""
texto = ""
End If

xmlDoc = "data.xml"
xslDoc = "gbook.xsl"

Set xmlObj = CreateObject("Microsoft.XMLDOM")
xmlObj.Async = False
xmlObj.Load(Server.MapPath(xmlDoc))

Set xslObj = CreateObject("Microsoft.XMLDOM")
xslObj.Async = False
xslObj.Load(Server.MapPath(xslDoc))

Response.Write(xmlObj.transformNode(xslObj))
Set xmlObj = nothing
Set xslObj = nothing
%>

<br>
<form action="gbook.asp" method="POST">
<input type="Hidden" name="x" value="x">
<table width="95%" border="0" cellspacing="0" cellpadding="2"
align="center" class="col">
<tr>
<td width="100">Nombre</td>
<td>
<input type="text" name="nombre" value="<%= nombre %>">
</td>
</tr>
<tr>
<td width="100">Email</td>
<td>
<input type="text" name="email" value="<%= email %>">
</td>
</tr>
<tr>
<td width="100">Texto:</td>
<td rowspan="2">
<textarea rows="5" name="texto"><%= texto %></textarea>
</td>
</tr>
<tr>
<td width="100" align="left" valign="bottom">
<input type="submit" name="Submit" value=" Enviar ">
</td>
</tr>
</table>
</form>
<p align="center"><font color="red"><%= mensaje %></font></p>

</body>

 




Autor: Alfredo Reino
http://www.ibium.com/alf/

Usuarios que han visto este tema también han visto...

- Desarrollo de un libro de visitas usando XML y ASP
- Microsoft Excel en ASP.NET
- Server Side Includes con ASP
- Generador de claves aleatorias
- Tres funciones útiles para fechas en ASP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 04-12-2008 a las 07:46:52