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コンテンツの変更

また、XPathNavigatorを使用してXMLを変更する方法に関するMicrosoftの記事へのリンクもあります:http://msdn.microsoft.com/en-us/library/zx28tfx1.aspx

于 2013-03-15T18:10:19.347 に答える