XPathNavigator.SetValue выбрасывает NotSupportedException - PullRequest
5 голосов
/ 21 октября 2009

У меня есть следующий код, последняя строка которого приводит к исключению NotSupportedException при каждом выполнении, и я не нашел способа обойти это. Этот гипотетический аналогичный код находит «книгу» с конкретным названием с целью обновления до нового названия. Он находит правильный узел, но не может его обновить.

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

node.SetValue( "NewTitle" );

Любая помощь будет принята с благодарностью.

1 Ответ

15 голосов
/ 21 октября 2009

XPathNavigator объекты, созданные XPathDocument объектами, доступны только для чтения (см. MSDN: Примечания )
Он должен быть создан с XmlDocument для редактирования:

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

node.SetValue("NewTitle");
...