替换Xml节点/元素的内部文本

本文关键字:内部 文本 元素 Xml 节点 替换 | 更新日期: 2023-09-27 18:23:42

首先,这是C#。我正在为英国国家医疗服务体系的一小群大学生创建一个互联网仪表板。下面是一个示例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",并用textBox中的文本替换innertext。并且能够保存它,而不用用一个节点替换整个文档。谢谢你的光临。

替换Xml节点/元素的内部文本

使用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.

希望这对你有帮助。