Foros del Web » Programación para mayores de 30 ;) » .NET »

Como creo un XML desde un textbox en asp.net?

Estas en el tema de Como creo un XML desde un textbox en asp.net? en el foro de .NET en Foros del Web. Hola Necesito guardar lo que tengo en un textbox como xml en una carpeta en el servidor, de manera que cada vez que guarde el ...
  #1 (permalink)  
Antiguo 17/03/2005, 07:50
 
Fecha de Ingreso: septiembre-2003
Ubicación: colombia
Mensajes: 374
Antigüedad: 20 años, 9 meses
Puntos: 0
Como creo un XML desde un textbox en asp.net?

Hola

Necesito guardar lo que tengo en un textbox como xml en una carpeta en el servidor, de manera que cada vez que guarde el texto se guarde en el mismo archivo xml como un nuevo registro. Gracias
__________________
J-.-`.::
  #2 (permalink)  
Antiguo 17/03/2005, 09:19
 
Fecha de Ingreso: mayo-2004
Ubicación: Managua, Nicaragua
Mensajes: 281
Antigüedad: 20 años
Puntos: 0
Aqui tenes un ejemplo para agregar Nodos a tu XML.

Dim objParser = Server.CreateObject("Microsoft.XMLDOM")
Dim Node = Server.CreateObject("Microsoft.XMLDOM")
Dim Fila = Server.CreateObject("Microsoft.XMLDOM")
Sub XML(ByVal Id As String, Optional ByVal Cad As String = "")
Fila = objParser.createElement("Fila") 'Se crea el Nodo Fila
Fila.setAttribute("Id", Id)
Fila.appendChild(objParser.createElement("TipoLine a"))
Fila.childNodes.Item(0).text = Request.Form("cmboTipLin" & Request.Form("NFila"))
Fila.appendChild(objParser.createElement("Cantidad "))
Fila.childNodes.Item(1).text = "0"
Fila.appendChild(objParser.createElement("ValorDet alle"))
Fila.childNodes.Item(2).text = "0"
Fila.appendChild(objParser.createElement("Impuesto "))
Fila.childNodes.Item(3).text = "0"
End Sub

O Para crearlos:

Imports System.IO
Imports System.Xml

Sub Xml(ByVal Fecha$, ByVal BsTc$)
Dim path$ = Session("FullPathXMLU")
Dim ArchivoXML As XmlTextWriter = New XmlTextWriter(path, Nothing)
With ArchivoXML
.Formatting = System.Xml.Formatting.Indented
.WriteStartDocument(False)
.WriteStartElement("MovimientoCXP") 'Encabezado del formulario Detalles
.WriteStartElement("Cabecera") 'Descripción de Cabecera
.WriteAttributeString("Id", Session("Usr")) 'Poner Nombre del Usuario que crea el archivo
.WriteElementString("TTrans", Request.QueryString("tTran")) 'Hijo de Cabecera
.WriteElementString("Detalles", "")
.WriteEndElement()
.WriteEndElement()
.Flush()
.Close()
End With
End Sub
__________________
Julio Hernández
  #3 (permalink)  
Antiguo 17/03/2005, 10:14
 
Fecha de Ingreso: mayo-2002
Ubicación: Guatemala
Mensajes: 160
Antigüedad: 22 años
Puntos: 1
Hay un par de namespace para manejar archivos Xml

System.Xml y System.Xml.XPath

XmlDocument podes leer el archivo completo, con XmlPath podes manejar el archivo y recorrerlo. La diferencia es que XmlDocument lee todo el archivo, por lo que te consume más memoría, y el XmlPath te lee el archivo directamente, utilizando el objeto XPathNavigator.

Lo que si tendrías que hacer es un truco para manejar el xml más eficientemente...busca sobre referencias externas en xml, para que los archivos te queden algo así:

<?xml version="1.0"?>
<tabla>
&archivoExt;
</tabla>

y el otro archivo tendría:

<registro>
<texto1>texto de ejmplo</texto1>
<a>bbb</a>
</registro>
<registro>
<texto1>texto de ejmplo</texto1>
<a>bbb</a>
</registro>

Entonces la concatenación la haces a este archivo (un append), sin tener que estar modificandolo por completo cada vez. Espero que se me entienda este caso por que no encuentro el ejemplo donde lo vi en internet.

El XPathNavigator al final vería los dos archivos como uno...

<?xml version="1.0"?>
<tabla>
<registro>
<texto1>texto de ejmplo</texto1>
<a>bbb</a>
</registro>
<registro>
<texto1>texto de ejmplo</texto1>
<a>bbb</a>
</registro>
</tabla>
__________________
José Luis Chávez del Cid
Systems Developer Specialist
ACS Inc./Xerox
Guatemala
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 14:35.