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

XML desde ASP.NET

Estas en el tema de XML desde ASP.NET en el foro de .NET en Foros del Web. A partir de crear Dim xmlDoc As New XmlDocument() me gustaria saber que pasos debo seguir para estructurar el xml, meterle la información y crearlo ...
  #1 (permalink)  
Antiguo 22/06/2005, 09:10
 
Fecha de Ingreso: junio-2005
Mensajes: 149
Antigüedad: 18 años, 11 meses
Puntos: 0
XML desde ASP.NET

A partir de crear Dim xmlDoc As New XmlDocument() me gustaria saber que pasos debo seguir para estructurar el xml, meterle la información y crearlo fisicamente y guardarlo. Espero que alguien sepa como hacerlo porque me estoy volviendo loco.

Gracias amigos!!
  #2 (permalink)  
Antiguo 22/06/2005, 10:01
 
Fecha de Ingreso: junio-2005
Mensajes: 149
Antigüedad: 18 años, 11 meses
Puntos: 0
Por si alguien necesita saber como se hace hay un magnifico ejemplo en C# en este link: Ejemplo MSDN
  #3 (permalink)  
Antiguo 22/06/2005, 11:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
El unico problema que encontré usando la clase XMLTextWriter fue que no te permite agregar nuevos nodos al archivo, sino que si el archivo ya existe te lo sobreescribe, eliminando toda la información que tenía. Hay clases más lentas, pero más completas, que te dan mucho mayor control sobre el archivo xml, permitiendote eliminar, actualizar datos o insertar nuevos. Acá te paso un código que uso cuando se suscribe un nuevo comercio a mi sitio (potencialmente hablando, ya que todavía no lo tengo terminado):

Dim xml_Document As New XmlDocument()
xml_Document.Load(Server.MapPath("ShopInfo.xml"))

Dim e_Shop As XmlElement = xml_Document.CreateElement("Shop")
Dim att_Id As XmlAttribute = e_Shop.SetAttributeNode("Id",nothing)
Dim att_Name As XmlAttribute = e_Shop.SetAttributeNode("Name",nothing)
att_Name.Value = ShopName
att_Id.Value = ShopId
xml_Document.DocumentElement.AppendChild(e_Shop)

Dim e_MemberSince As XmlElement = xml_Document.CreateElement("MemberSince")
e_MemberSince.InnerText = Now()
xml_Document.DocumentElement.LastChild.AppendChild (e_MemberSince)

Dim e_NewMessages As XmlElement = xml_Document.CreateElement("NewMessages")
e_NewMessages.InnerText = "None"
xml_Document.DocumentElement.LastChild.AppendChild (e_NewMessages)

Dim e_NewOrders As XmlElement = xml_Document.CreateElement("NewOrders")
e_NewOrders.InnerText = "None"
xml_Document.DocumentElement.LastChild.AppendChild (e_NewOrders)

Dim e_LastVisit As XmlElement = xml_Document.CreateElement("LastVisit")
e_LastVisit.InnerText = Now()
xml_Document.DocumentElement.LastChild.AppendChild (e_LastVisit)

xml_Document.Save(Server.MapPath("ShopInfo.xml"))

La lógica es fácil, se carga el archivo XML al que deseas introducir los nuevos datos con el método Load() del objeto XMLDOCUMENT. Luego, siempre se crea un elemento o nodo, se trabaja con el elemento o nodo (agregando atributos, texto, etc) y después de eso se agrega a la estructura del archivo XML con el método AppendChild(). Este método te agrega el elemento o nodo que le pasas como argumento, después del último nodo secundario. Por ejemplo, xml_Document.DocumentElement, sería el elemento raíz del archivo xml, y si hacemos xml_Document.DocumentElement.AppendChild(Algún_Nod o), te lo agregaría luego del último de los nodos secundarios del elemento raíz.
Si bien es un poco más complejo el manejo de estas clases que la clase XmlTextWriter, en MSDN tenés obviamente toda la información y con varios ejemplos que te pueden servir.
Un saludo y espero que te haya servido de algo.
Suerte!.
__________________
Add, never Remove
  #4 (permalink)  
Antiguo 23/06/2005, 00:58
 
Fecha de Ingreso: junio-2005
Mensajes: 149
Antigüedad: 18 años, 11 meses
Puntos: 0
La verdad es que en este momento no recibo mas que errores de xml intentando hacer lo que necesito, que seria abrir el xml al comienzo de la pagina, añadir tantos nodos-registros como el usuario quiera con la info que haya introducido y cerrarlo y generarlo al salir de la pagina, parece que al meter el segundo nodo-registro el sistema dice que el xml esta siendo usado, bastante lógico pero no añade nada debido al error. En fin, voy a probar las clases que me propones aver si tengo mejor suerte.

muchas gracias mariano!
  #5 (permalink)  
Antiguo 23/06/2005, 01:44
 
Fecha de Ingreso: junio-2005
Mensajes: 149
Antigüedad: 18 años, 11 meses
Puntos: 0
Mensaje

mariano tu xml tendria un estructura plana, es decir todos los nodos a distinto nivel, porque no veo como hacer los distintos niveles con esta clase, la estructuracion que quiero hacer es algo asi:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <ficha>
- <datos>
<nombre>Angel</nombre>
<apellido>Barbero</apellido>
<direccion>c/Ulises, 36</direccion>
</datos>
- <actividades>
<trabajo dureza="alta">minero</trabajo>
<deportes motivo="salud">footing</deportes>
<deportes motivo="hobbi">ajedrez</deportes>
</actividades>
</ficha>

no se ven las tabulaciones
aparte de esto la creación del xml tambien la haces através de xmldocument?

Última edición por MikelInik; 23/06/2005 a las 01:58
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:05.