C# 如何将innerXML值分配给XPathNavigator?

C# 如何将innerXML值分配给XPathNavigator?,c#,xml,xml-parsing,linq-to-xml,C#,Xml,Xml Parsing,Linq To Xml,当我尝试为InnerXml赋值时,下面的代码行抛出了一个系统。NotSupportedException: XPathNavigator dataItem = currentXPathDoc.CreateNavigator(); dataItem.MoveToChild(XPathNodeType.Element); dataItem.InnerXml = TemplateEvaluator.NormalizeUnicode(dataItem.InnerXml); 这是预期的文件: // Ex

当我尝试为
InnerXml
赋值时,下面的代码行抛出了一个
系统。NotSupportedException

XPathNavigator dataItem = currentXPathDoc.CreateNavigator();
dataItem.MoveToChild(XPathNodeType.Element);
dataItem.InnerXml = TemplateEvaluator.NormalizeUnicode(dataItem.InnerXml);
这是预期的文件:

// Exceptions:
//   System.InvalidOperationException:
//     The System.Xml.XPath.XPathNavigator.InnerXml property cannot be set.
我正在试图找出是否有一种方法可以在不进行完全重构的情况下将此节点的
InnerXml
更改为使用
XDocument
而不是
XPathNavigator


这可能吗?或者我必须在这里接受性能/一致性测试并使用其他东西吗?

可以编辑由XMLDocument对象创建的XPathNavigator对象。XPathDocument创建的XPathNavigator对象是只读的

还有一个类似的问题:


它还链接到Microsoft的一篇关于如何使用XPathNavigator修改XML的文章:

这应该是一篇评论,而不是一篇回答。很幸运,我是从
XPathDocument
创建的,所以这对我不起作用。你能分享一个代码示例来重现这个问题吗?或者
dataItem
设置了什么。@RyanGates我做了,我认为另一个Ryan的回答为我指明了正确的方向。我将它改为使用XDocument而不是XPathDocument,现在正在测试它。