Изменить XML-файл с C # - PullRequest
       6

Изменить XML-файл с C #

0 голосов
/ 08 ноября 2019

У меня есть содержимое файла 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>

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Использование 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");
        }
    }
}
0 голосов
/ 08 ноября 2019

Если вам нужно простое решение, которое не требует создания модели C #, представляющей структуру XML-файла, я бы предложил использовать класс XDocument .net (https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xdocument?view=netframework-4.8)

. Я нашел довольно хорошийНапример, здесь, на stackoverflow, где был задан похожий вопрос: Редактировать определенный элемент в XDocument

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...