title: C# How to change Xml node values using Linq
body: <p>How can I replace the node value <code>some value</code> with another value using Linq.
  Finally I need a string with the replaced value.</p>
  
  <p>Xml:</p>
  
  <pre><code>&lt;ROOT&gt;
    &lt;A&gt;
      &lt;A1&gt;
        &lt;elementA1&gt;&lt;/elementA1&gt;
      &lt;/A1&gt;
      &lt;A2&gt;
        &lt;elementA2&gt;some value&lt;/elementA2&gt;
      &lt;/A2&gt;
    &lt;/A&gt;
  &lt;/ROOT&gt;
  </code></pre>
  
  <p>C#:</p>
  
  <pre><code>XDocument xDoc = XDocument.Parse(@"&lt;ROOT&gt;
                                          &lt;A&gt;
                                            &lt;A1&gt;
                                              &lt;elementA1&gt;&lt;/elementA1&gt;
                                            &lt;/A1&gt;
                                            &lt;A2&gt;
                                              &lt;elementA2&gt;Some value&lt;/elementA2&gt;
                                            &lt;/A2&gt;
                                          &lt;/A&gt;
                                        &lt;/ROOT&gt;");
  
  xDoc.Elements("ROOT")
               .Elements("A")
               .Elements("A2")
               .Elements("elementA2")
               .Select(e =&gt; e.Value).ToList().ForEach(e =&gt; /* change the value */);
  </code></pre>