XPathNavigator.SetValue Throws NotSupportedException

.net, c#, visual-studio-2005, xml, xpath

Solution

`XPathNavigator` objects created by `XPathDocument` objects are read-only (see MSDN: Remarks) It should be created with `XmlDocument` to be editable:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XPathNavigator nav = xmlDoc.CreateNavigator();
XPathNavigator node = nav.SelectSingleNode(@"//Book[Title='OldTitle']/Title");

node.SetValue("NewTitle");

Problem

I have the following code, whose last line results in a NotSupportedException on every execution, and I haven't found a way around it. This hypothetical analogous code finds a "book" with a specific title, with the goal of updating it to the new title. It does find the correct node, but fails to update it. ``` XPathDocument xpathDoc = new XPathDocument( fileName ); XPathNavigator nav = xpathDoc.CreateNavigator(); XPathNavigator node = nav.SelectSingleNode( @"//Book[Title='OldTitle']/Title" ); node.SetValue( "NewTitle" ); ``` Any help would be greatly appreciated.

Original source