En primer lugar, esto es C#. Estoy creando un panel de internet para un pequeño grupo de colegas en el NHS. A continuación se muestra un archivo xml de ejemplo en el que necesito cambiar el texto interno de. Necesito reemplazar un elemento específico, por ejemplo, "Taller 1". Debido a que tenemos algunos talleres, no puedo permitirme el uso de un escritor general porque reemplazará toda la información en el documento XML con este código.Reemplazar el texto interno de un nodo/elemento Xml
<?xml version="1.0" ?>
<buttons>
<workshop1>hello</workshop1>
<url1>www.google.co.uk</url1>
estoy usando un caso interruptor para seleccionar un taller específico donde se puede cambiar el nombre y añadir una URL del taller y que utiliza este código de abajo reemplazará todo el documento.
public void XMLW()
{
XmlTextReader reader = new XmlTextReader("C:\\myXmFile.xml");
XmlDocument doc = new XmlDocument();
switch (comboBox1.Text)
{
case "button1":
doc.Load(reader); //Assuming reader is your XmlReader
doc.SelectSingleNode("buttons/workshop1").InnerText = textBox1.Text;
reader.Close();
doc.Save(@"C:\myXmFile.xml");
break;
}
}
Así sólo para aclarar Quiero que mi programa en C# para buscar a través del documento XML encontrar el elemento "taller1" y reemplazar el InnerText con el texto de un cuadro de texto. y poder guardarlo sin reemplazar todo el documento con un nodo. Gracias por mirar.
¿Hay algún motivo por el que no esté utilizando 'XDocument' o al menos la API' XmlDocument'? Normalmente solo usas 'XmlReader' /' XmlWriter' si tienes que procesar * enormes * archivos XML. –
Bueno, soy un poco novato en C#. Entonces, para ejecutar el programa general, estoy atacando el código y luego, cuando lo veo funcionar, puedo cambiar el código para hacerlo más eficiente. Al menos de esta manera puedo aprender la diferencia entre las formas feas y limpias de hacer las cosas y comprender las ventajas de ambas. Sin embargo, gracias por su guía, buscaré usar XMLReader/XMLWriter ahora. – Marshal
Mi consejo fue NO usar 'XmlReader' /' XmlWriter' ... –