visual studio see remarks method example cref comment c# xml xmlnode xmltextwriter

studio - Modificar contenido XML existente en C#



see cref c# (4)

Formando un archivo XML

XmlTextWriter xmlw = new XmlTextWriter(@"C:/WINDOWS/Temp/exm.xml",System.Text.Encoding.UTF8); xmlw.WriteStartDocument(); xmlw.WriteStartElement("examtimes"); xmlw.WriteStartElement("Starttime"); xmlw.WriteString(DateTime.Now.AddHours(0).ToString()); xmlw.WriteEndElement(); xmlw.WriteStartElement("Changetime"); xmlw.WriteString(DateTime.Now.AddHours(0).ToString()); xmlw.WriteEndElement(); xmlw.WriteStartElement("Endtime"); xmlw.WriteString(DateTime.Now.AddHours(1).ToString()); xmlw.WriteEndElement(); xmlw.WriteEndElement(); xmlw.WriteEndDocument(); xmlw.Close();

Para editar los nodos Xml usa el siguiente código

XmlDocument doc = new XmlDocument(); doc.Load(@"C:/WINDOWS/Temp/exm.xml"); XmlNode root = doc.DocumentElement["Starttime"]; root.FirstChild.InnerText = "First"; XmlNode root1 = doc.DocumentElement["Changetime"]; root1.FirstChild.InnerText = "Second"; doc.Save(@"C:/WINDOWS/Temp/exm.xml");

Prueba esto. Es el código C #.

Propósito: Planeo crear un archivo XML con XmlTextWriter y modificar / actualizar algún contenido existente con XmlNode SelectSingleNode (), node.ChildNode [?]. InnerText = algo, etc.

Después de crear el archivo XML con XmlTextWriter como se muestra a continuación.

XmlTextWriter textWriter = new XmlTextWriter("D://learning//cs//myTest.xml", System.Text.Encoding.UTF8);

Practiqué el código de abajo. Pero no pudo guardar mi archivo XML.

XmlDocument doc = new XmlDocument(); doc.Load("D://learning//cs//myTest.xml"); XmlNode root = doc.DocumentElement; XmlNode myNode; myNode= root.SelectSingleNode("descendant::books");

....

textWriter.Close(); doc.Save("D://learning//cs//myTest.xml");

Descubrí que no es bueno producir a mi manera. ¿Hay alguna sugerencia al respecto? No tengo claros los conceptos y el uso de XmlTextWriter y XmlNode en el mismo proyecto. Gracias por leer y respuestas.


Bueno, si desea actualizar un nodo en XML, XmlDocument está bien, no necesita usar XmlTextWriter .

XmlDocument doc = new XmlDocument(); doc.Load("D://build.xml"); XmlNode root = doc.DocumentElement; XmlNode myNode = root.SelectSingleNode("descendant::books"); myNode.Value = "blabla"; doc.Save("D://build.xml");


El XmlTextWriter se usa generalmente para generar (no actualizar) contenido XML. Cuando carga el archivo xml en un XmlDocument, no necesita un escritor separado.

Solo actualice el nodo que ha seleccionado y .Guardar () ese documento Xml.


Usando LINQ to xml si está usando framework 3.5

using System.Xml.Linq; XDocument xmlFile = XDocument.Load("books.xml"); var query = from c in xmlFile.Elements("catalog").Elements("book") select c; foreach (XElement book in query) { book.Attribute("attr1").Value = "MyNewValue"; } xmlFile.Save("books.xml");