如何将innerXML值分配给XPathNavigator?

时间:2013-03-15 18:03:26

标签: c# xml xml-parsing linq-to-xml

以下代码行在我尝试为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

这可能吗?或者我是否必须采取性能/一致性命中并在此处使用其他内容?

1 个答案:

答案 0 :(得分:3)

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

还有另外一个与此类似的问题:

Modifying Existing XML Content in C#

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