【问题标题】:XML File Editing with C#使用 C# 编辑 XML 文件
【发布时间】:2018-07-13 08:43:34
【问题描述】:

所以这是我第一次使用 XML 文档,我需要一些帮助。 我的 XML 文件中有这个片段:

<configuration>
  <appSettings>
    <add key="PhoneVersion" value="36.999.1" />
    <add key="TabletVersion" value="36.999.1" />
    <add key="DesktopVersion" value="36.999.1" />
  </appSettings>
</configuration>

我正在尝试读取每一行的值并将最后一位数字增加 +1。

我能够阅读整个文件,但我只想阅读所述的行。

有什么帮助吗??

【问题讨论】:

  • 你能显示一些代码吗?

标签: c# xml system.xml


【解决方案1】:

尝试使用 Xml Linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication51
{

    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";

        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            foreach (XElement add in doc.Descendants("add"))
            {
                string[] values = add.Attribute("value").Value.Split(new char[] {'.'});
                values[values.Length - 1] = (int.Parse(values[values.Length - 1]) + 1).ToString();
                add.SetAttributeValue("value", string.Join(".", values));
            }

        }
    }


}

【讨论】:

  • 我可以阅读整个文件,但我只想阅读声明的行 - 但XDoxument.Load(FILENAME) 将阅读整个文件。
  • Windows 不允许您修改文件的一部分。您必须读取整个文件,然后将其写回。
【解决方案2】:

使用XElement 加载xml 文件。然后就可以用Descendants()方法迭代&lt;configuration&gt;节点的后代节点了。

终于可以用Attribute()读取&lt;add&gt;节点的属性了。

【讨论】:

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