views:

61

answers:

2

Given the following XML:

<SomeXML>
    <Element1>
        <Element2 Attribute3="Value4" />
    </Element1
</SomeXML>

... and an XElement reference to 'SomeElement' and an XPath 'Element1/Element2/@Attribute3'

How do I retrieve a reference to Attribute3 so that I may alter it's value (using the Xpath)?

The XPath is to be a retrieved setting and thus is my only way of locating the node in question.

+4  A: 

using System.Xml.XPath

and the extension method XPathSelectElement on your XElement

Gregoire
Also a great answer. It's just a shame I can't actively split the points.
Rory Becker
+5  A: 

Add using System.Xml.XPath to the code file where you need to do this.

Then you can use code like this:-

 var attrib3 = someElement.XPathEvaluate("Element1/Element2/@Attribute3") as XAttribute;
 if (attrib3 != null)
     attrib3.Value = "new value";
AnthonyWJones
Today you are my personal hero :D Excellent stuff
Rory Becker