Обновить значение XAttribute, где XAttribute Name = X

У меня есть следующий код, который создает XML-файл с кучей информации о заказе. Я хотел бы иметь возможность обновить запись в этом XML-файле вместо того, чтобы удалять все и снова добавлять все заново.

Я знаю, что могу сделать это:

xElement.Attribute(attribute).Value = value;

Но это изменит каждый атрибут с тем же именем, что и атрибут держит. Как я могу изменить значение чего-либо, например, если идентификатор записи равен "jason"? Нужно ли мне загружать XML-файл, перебирать весь файл, пока он не найдет совпадение для атрибута, который я хочу изменить, затем изменить его, а затем снова сохранить файл?

Любая помощь / предложения приветствуются.

XElement xElement;
xElement = new XElement("Orders");

XElement element = new XElement(
    "Order",
    new XAttribute("Id", CustomId),
    new XAttribute("Quantity", Quantity),
    new XAttribute("PartNo", PartNo),
    new XAttribute("Description", Description),
    new XAttribute("Discount", Discount),
    new XAttribute("Freight", Freight),
    new XAttribute("UnitValue", UnitValue),
    new XAttribute("LineTotal", LineTotal)
    );
xElement.Add(element);
xElement.Save(PartNo + ".xml");

Вот как выглядит мой XML-файл:

<?xml version="1.0" encoding="utf-8"?>
<Orders>
    <Order Id="V45Y7B458B" Quantity="2" PartNo="5VNB98" Description="New Custom Item Description" Discount="2.00" Freight="2.90" UnitValue="27.88" LineTotal="25.09" />
    <Order Id="jason" Quantity="2" PartNo="jason" Description="New Custom Item Description" Discount="2.00" Freight="2.90" UnitValue="27.88" LineTotal="25.09" />
</Orders>
10
задан Lauren Van Sloun 3 October 2018 в 16:56
поделиться