<p>I appreciate that there are now many mechanisms in dotnet to deal with XML in a myriad of ways... </p>

<p>Suppose I have a string containing the XML....</p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;root&gt;
    &lt;Element1&gt;
        &lt;Element1_1&gt;
            SomeData
        &lt;/Element1_1&gt;
    &lt;/Element1&gt;
    &lt;Element2&gt;
        Some More Data
    &lt;/Element2&gt;
&lt;/root&gt;
</code></pre>

<p><strong>What is the simplest (most readable) way of removing Element1_1?</strong></p>

<p>Update... I can use any .Net API available in .Net 3.5 :D </p>

Which APIs are you able to use? Can you use .NET 3.5 and LINQ to XML, for instance? If so,
XNode.Remove
is your friend - just select Element1_1 (in any of the many ways which are easy with LINQ to XML) and call Remove() on it.
Examples of how to select the element:
```
```
XElement element = doc.XPathSelectElement("/root/Element1/Element1_1");
element.Remove();
```
```
Or:
```
```
XElement element = doc.Descendants("Element1_1").Single().Remove();
```
```