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

发布于 2025-01-03 13:46:36 字数 1011 浏览 0 评论 0原文

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

<?xml version="1.0" ?> 
   <buttons>
      <workshop1>hello</workshop1> 
      <url1>www.google.co.uk</url1> 

我使用 switch case 选择一个特定的研讨会,您可以在其中更改名称并添加研讨会的 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”,并用文本框中的文本替换内部文本。并且能够保存它而无需用一个节点替换整个文档。感谢您的关注。

First of all this is C#. I am creating a internet dashboard for a small group of colleages in the NHS.
Below is an example xml file in which I need to change the innertext of. I need to replace a specific element for example "Workshop1." Because we have a few workshops I cannot afford to use a general writer because it will replace all the information on the XML document with this one bit of code below.

<?xml version="1.0" ?> 
   <buttons>
      <workshop1>hello</workshop1> 
      <url1>www.google.co.uk</url1> 

I am using a switch case to select a specific workshop where you can change the name and add a URL of the workshop and using this code below will replace the whole document.

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;


        }


    }

So just to clarify I want my C# program to search through the XML document find the element "Workshop1" and replace the innertext with text from a textBox. and be able to save it without replacing the whole document with one node. Thanks for looking.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在巴黎塔顶看东京樱花 2025-01-10 13:46:36

使用 XmlDocument 和 XPath 可以做到这一点。

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

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

MSDNXmlDocument 的更多信息一个>。

编辑

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

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

希望这对您有帮助。

Using XmlDocument and XPath you can do this

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

You can use doc.Save to save the file also.

Read more about XmlDocument on MSDN.

EDIT

To save the document do this

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

Hope this helps you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文