当我试图给InnerXml赋值时,下面这行代码抛出了一个System.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
这个是可能的吗?或者,我是否必须承担性能/一致性方面的影响,并在这里使用其他东西?
发布于 2013-03-16 02:10:19
可以编辑由XMLDocument对象创建的XPathNavigator对象。由XPathDocument创建的XPathNavigator对象是只读的。
还有另一个类似的问题:
Modifying Existing XML Content in C#
它还链接到微软的一篇关于如何使用XPathNavigator修改XML的文章:http://msdn.microsoft.com/en-us/library/zx28tfx1.aspx
https://stackoverflow.com/questions/15439251
复制相似问题