ドキュメント内のノードとコンテンツを変更する方法は多数あります。 次のようにすることができます。
Value プロパティを使用してノードの値を変更します。
ノードを新しいノードに置き換えて、ノードのセット全体を変更します。 これは、 InnerXml プロパティを使用して行われます。
RemoveChild メソッドを使用して、既存のノードを新しいノードに置き換えます。
XmlCharacterData、AppendData、またはInsertDataメソッドを使用して、ReplaceData クラスから継承するノードに文字を追加します。
DeleteDataから継承するノード型のXmlCharacterData メソッドを使用して、文字の範囲を削除して、コンテンツを変更します。
ノードの値を変更する簡単な手法は、 node.Value = "new value";を使用することです。 次の表に、この 1 行のコードで動作するノードの種類と、そのノード の種類に対して変更されるデータを正確に示します。
| ノード タイプ | 変更されたデータ |
|---|---|
| 特性 | 属性の値。 |
| CDATA セクション | CDATAセクションの内容。 |
| コメント | コメントの内容。 |
| 処理命令 | ターゲットを除くコンテンツ。 |
| テキスト | テキストの内容。 |
| XML宣言 |
<?xmlおよび?>マークアップを除く宣言の内容。 |
| 空白 | 空白部分の価値。 この値は、認識される 4 つの XML 空白文字 (スペース、タブ、CR、または LF) のいずれかに設定できます。 |
| SignificantWhitespace | 有意の空白の値。 この値は、認識される 4 つの XML 空白文字 (スペース、タブ、CR、または LF) のいずれかに設定できます。 |
表にリストされていないノード・タイプは、値を設定する有効なノード・タイプではありません。 他のノード タイプに値を設定すると、 InvalidOperationExceptionがスローされます。
InnerXml プロパティは、現在のノードの子ノードのマークアップを変更します。 このプロパティを設定すると、子ノードは、指定された文字列の解析された内容に置き換えられます。 解析は、現在の名前空間コンテキストで行われます。 さらに、 InnerXml は冗長な名前空間宣言を削除します。 そのため、多数の切り取りと貼り付けの操作では、冗長な名前空間宣言を使用してドキュメントのサイズが大きくなるわけではありません。 InnerXml操作に対する名前空間の影響を示すコード例については、InnerXml プロパティを参照してください。
ReplaceDataメソッドとRemoveChild メソッドを使用すると、置換または削除されたノードが返されます。 このノードは、XML ドキュメント オブジェクト モデル (DOM) 内の別の場所に再挿入できます。 ReplaceData メソッドは、ドキュメントに挿入されるノードに対して 2 つの検証チェックを行います。 最初のチェックでは、そのノードの親となるノードが、挿入されるノード型の子ノードを持つことができるかどうかを確認します。 2 番目のチェックでは、挿入されるノードが、そのノードが子になるノードの先祖ではないことが確認されます。 これらの条件のいずれかに違反すると、InvalidOperationException がスローされます。
編集できるノードに対して読み取り専用の子を追加または削除することは有効です。 しかし、読み取り専用のノードそのものを変更しようとすると、InvalidOperationException がスローされます。 たとえば、 XmlEntityReference ノードの子を変更します。 このノードの子は読み取り専用であり、変更できません。 それらを変更しようとすると、InvalidOperationExceptionが発生します。
こちらも参照ください
.NET