Linq to XML-запросы - PullRequest
       3

Linq to XML-запросы

0 голосов
/ 05 февраля 2019

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

Например, если у меня есть древовидная структурачто-то вроде:

string xml = @"<root>  
      <para>  
            <r>  
              <s>
                27
              </s >
              <t size = 'M'>
                34
              </t >
              <u>
                <v>
                    65
                </v>
              </u>
            </r>  
            <r>  
            <u>
                <v>
                    65
                </v>
            </u>
            </r>  
            <r>  
                <t>bla</t>  
            </r>  
      </para>  
    </root>"

XElement doc = XElement.Parse(xml);

var result = doc.Elements("v")
           .ToList();

foreach (var el in result)
{
    el.value = "Something";
}

//and then save the modified tree

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете использовать SetValue для обновления элемента.В вашем случае вам также необходимо обновить ваш запрос, чтобы получить элементы "v".

XElement doc = XElement.Parse(xml);

var result = doc.Descendants("v");

foreach (XElement item in result)
{

    item.SetValue("New Value");
}
var newXml = doc.ToString();

Вывод

<root>
  <para>
    <r>
      <s>
                27
              </s>
      <t size="M">
                34
              </t>
      <u>
        <v>New Value</v>
      </u>
    </r>
    <r>
      <u>
        <v>New Value</v>
      </u>
    </r>
    <r>
      <t>bla</t>
    </r>
  </para>
</root>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...