【问题标题】:Modify xml file with C#用C#修改xml文件
【发布时间】:2019-11-08 06:44:45
【问题描述】:

我有一个 XML 文件内容如下
我需要修改第 4 行:

701.50,24.0 到 701.50,30.0

我该怎么做?

<CableLossConfig>
    <Std Val="CATM1">
        <Path Val="TX1">
            <Loss>701.50,24.0</Loss>
            <Loss>710.50,24.0</Loss>
            <Loss>713.50,24.0</Loss>
            <Loss>779.50,23.0</Loss>
            <Loss>782.00,23.0</Loss>
            <Loss>784.50,23.0</Loss>
            <Loss>826.50,30.0</Loss>
            <Loss>836.50,30.0</Loss>
            <Loss>846.50,30.0</Loss>
            <Loss>1712.50,37.0</Loss>
            <Loss>1732.50,37.0</Loss>
            <Loss>1752.50,37.0</Loss>
            <Loss>1852.50,37.0</Loss>
            <Loss>1880.00,37.0</Loss>
            <Loss>1907.50,37.0</Loss>
        </Path>
    </Std>
</CableLossConfig>

【问题讨论】:

  • 您能否发布您为实现此目的而编写的代码? Stackoverflow 是在您尽力而为后获得您面临错误或卡住的问题的答案的网站。请检查其他资源。
  • 您要更改第一个 值,还是更改所有具有 701.50 值的
  • 看看 XmlDocument 类。 docs.microsoft.com/en-us/dotnet/api/…csharp.net-tutorials.com/xml/… 应该让你开始
  • @Mark:我建议使用XDocument 而不是XmlDocument - 在我看来这是一个更简洁的API。

标签: c# xml


【解决方案1】:

使用 xml linq:

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

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            XElement tx1 = doc.Descendants("Path").Where(x => (string)x.Attribute("Val") == "TX1").FirstOrDefault();
            List<XElement> losses = tx1.Elements("Loss").ToList();
            XElement loss1 = losses[1];
            loss1.SetValue("701.50,30.0");
        }
    }
}

【讨论】:

    【解决方案2】:

    如果您想要一个不需要创建表示 xml 文件结构的 C# 模型的简单解决方案,我建议使用 XDocument .net 类 (https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xdocument?view=netframework-4.8)

    我在 stackoverflow 上找到了一个很好的例子,也问了一个类似的问题:Edit specific Element in XDocument

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      相关资源
      最近更新 更多