Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/06/2005, 11:59
mariano_donati
 
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