以下代码行在我尝试为System.NotSupportedException
分配值时抛出InnerXml
:
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
这可能吗?或者我是否必须采取性能/一致性命中并在此处使用其他内容?
答案 0 :(得分:3)
可以编辑XMLDocument对象创建的XPathNavigator对象。 XPathDocument创建的XPathNavigator对象是只读的。
还有另外一个与此类似的问题:
Modifying Existing XML Content in C#
它还链接到Microsoft关于如何使用XPathNavigator修改XML的文章:http://msdn.microsoft.com/en-us/library/zx28tfx1.aspx