1

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

这可能吗?还是我必须承受性能/一致性的影响并在这里使用其他东西?

4

1 回答 1

3

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

SO上还有一个与此类似的问题:

在 C# 中修改现有 XML 内容

它还链接到 Microsoft 关于如何使用 XPathNavigator 修改 XML 的文章:http: //msdn.microsoft.com/en-us/library/zx28tfx1.aspx

于 2013-03-15T18:10:19.347 回答