我有以下代码,其最后一行在每次执行时都会导致NotSupportedException,但我还没有找到解决方法。该假设的类似代码找到具有特定标题的“书”,目的是将其更新为新标题。它确实找到了正确的节点,但是无法更新它。

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

node.SetValue( "NewTitle" );

任何帮助将不胜感激。

最佳答案

XPathNavigator对象创建的XPathDocument对象是只读的(请参阅MSDN: Remarks)
应该使用XmlDocument创建它,以使其可编辑:

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

node.SetValue("NewTitle");

10-08 06:31