Измените значение XElement по умолчанию во время выполнения в C# с помощью LINQ

Как изменить значение по умолчанию для следующего элемента XElement в C# с помощью LINQ:

<Automobile>
  <MainBlock>Car</MainBlock>
  <Name>Audi</Name>
  <Value> type = "System.Double" min = "0" max = "100" default = "50" resolution = "1.0" unit = ""</Value>
</Automobile>

Значение по умолчанию — 50. Я хочу изменить его на 20.

🤔 А знаете ли вы, что...
C# был представлен в 2000 году и стал частью платформы .NET Framework.


55
2

Ответы:

у вас есть много решений для этого. Одно решение:

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.LoadXml(@"
        <Automobile>
          <MainBlock>Car</MainBlock>
          <Name>Audi</Name>
          <Value type = ""System.Double"" min = ""0"" max = ""100"" default = ""50"" resolution = ""1.0"" unit = """"></Value>
        </Automobile>");

        XmlNode sNode = xmldoc.SelectSingleNode("/Automobile/Value");
        XmlAttribute defautAttribute = sNode.Attributes["default"];

        if (defautAttribute != null)
            defautAttribute.Value = "20";

Решено

Вот реализация LINQ to XML.

С#

void Main()
{
    XDocument xdoc = XDocument.Parse(@"<Automobile>
          <MainBlock>Car</MainBlock>
          <Name>Audi</Name>
          <Value type='System.Double' min='0' max='100' default='50'></Value>
        </Automobile>");
    
    xdoc.Element("Automobile").Element("Value").Attribute("default").SetValue("20");
}