替换Xml节点/元素的innertext

首先,这是C#。 我正在为NHS中的一小组同事创建一个互联网仪表板。 下面是一个示例xml文件,我需要更改其中的innertext。 我需要替换特定元素,例如“Workshop1”。 因为我们有一些研讨会,所以我不能使用通用编写器,因为它将使用下面的一段代码替换XML文档中的所有信息。

  hello www.google.co.uk 

我正在使用一个开关盒来选择一个特定的工作室,您可以在其中更改名称并添加研讨会的URL,使用下面的代码将替换整个文档。

 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; } } 

所以只是为了澄清我希望我的C#程序搜索XML文档找到元素“Workshop1”并用文本框中的文本替换innertext。 并且能够保存它而无需用一个节点替换整个文档。 谢谢你的期待。

使用XmlDocument和XPath,您可以执行此操作

 XmlDocument doc = new XmlDocument(); doc.Load(reader); //Assuming reader is your XmlReader doc.SelectSingleNode("buttons/workshop1").InnerText = "new text"; 

您也可以使用doc.Save来保存文件。

阅读有关MSDN上的 XmlDocument更多信息。

编辑

要保存文档,请执行此操作

 doc.Save(@"C:\myXmFile.xml"); //This will save the changes to the file. 

希望这对你有所帮助。