首先,这是C#。我正在为NHS中的一小部分同事创建一个互联网仪表板。 下面是一个示例xml文件,我需要更改其中的innertext。我需要替换特定元素,例如“Workshop1”。因为我们有一些研讨会,所以我不能使用通用编写器,因为它将使用下面的这一段代码替换XML文档中的所有信息。
<?xml version="1.0" ?>
<buttons>
<workshop1>hello</workshop1>
<url1>www.google.co.uk</url1>
我正在使用一个开关案例来选择一个特定的工作室,您可以在其中更改名称并添加研讨会的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。并且能够保存它而无需用一个节点替换整个文档。谢谢你的期待。
答案 0 :(得分:12)
使用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.
希望这会对你有所帮助。