【问题标题】:write innertext in xml file在 xml 文件中写入内部文本
【发布时间】:2011-01-15 00:23:24
【问题描述】:

如何在我的 xml 文件的内部文本中写一些东西

我可以像这样从文件中读取特定的标签:

 protected void Page_Load(object sender, EventArgs e)
    {// this is to read from xml.
        if (!Page.IsPostBack)
        {
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(@"C:\configfolder\config.xml");

            XmlNodeList portNo = xmlDoc.GetElementsByTagName("AgentConfigRepository");
            foreach (XmlNode node in portNo)
            {
                XmlElement bookElement = (XmlElement)node;
                string no = bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText;
                TextBox1.Text = no;
            }
        }
    }

现在我想更改 OVERRIDE_CONFIG_FILE_NAME 的内部文本中的值

这就是我的 xml 文件的样子:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<AgentConfigRepository>
  <SERVER_SHARE_SW_DIR_NAME val="singleVal">AgentSW</SERVER_SHARE_SW_DIR_NAME>
  <OVERRIDE_CONFIG_FILE_NAME val="singleVal">override_config.xml</OVERRIDE_CONFIG_FILE_NAME>
  <MAINTAIN_AGENT_SW_LEVEL val="singleVal">1.0</MAINTAIN_AGENT_SW_LEVEL>
  <MAINTAIN_AGENT_SW_PATCH_LEVEL val="singleVal">0</MAINTAIN_AGENT_SW_PATCH_LEVEL>
</AgentConfigRepository>

所以我想在文本框中将 override_config.xml 更改为其他值。

任何建议..谢谢

【问题讨论】:

    标签: c# asp.net xml innertext


    【解决方案1】:

    如果你可以使用 XDocument,它就变得很简单了:

    XDocument xdoc = XDocument.Load(@"C:\configfolder\config.xml");
    xdoc.Root.Element("OVERRIDE_CONFIG_FILE_NAME").SetValue("HelloThere");
    xdoc.Save(@"C:\so2.xml");
    

    【讨论】:

      【解决方案2】:

      不幸的是,目前这是未经测试的(我不在测试它的位置),但从您的问题的外观来看,您正在尝试更改您在这一行中找到的 Element 的 innerText:

      bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText;
      

      到您的文本框中的任何内容。通常你想要这样的声明:

      bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText = "new text"
      

      新文本可以是来自应用中文本框的字符串,也可以是其他变量,也可以是硬编码(如本例所示)。希望这会有所帮助。

      【讨论】:

      • 我以前试过这个,但它不能像这样单独工作......不过谢谢
      【解决方案3】:

      您可以像设置任何其他属性一样设置 InnerText(正如 Tim C 所说)

      但是,当您这样做时,它只会在 XmlDocument 对象中设置它。为了查看文件中的更改,您必须将更改保存回文件:

      bookElement.save(文件名)

      【讨论】:

        猜你喜欢
        • 2020-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多