Freigeben über


Ändern von Knoten, Inhalten und Werten in einem XML-Dokument

Es gibt viele Möglichkeiten, die Knoten und Inhalte in einem Dokument zu ändern. Sie haben folgende Möglichkeiten:

  • Ändern Sie den Wert von Knoten mithilfe der Value Eigenschaft.

  • Ändern Sie einen ganzen Satz von Knoten, indem Sie die Knoten durch neue Knoten ersetzen. Dies erfolgt mithilfe der InnerXml Eigenschaft.

  • Ersetzen Sie vorhandene Knoten durch neue Knoten mithilfe der RemoveChild Methode.

  • Fügen Sie zusätzliche Zeichen zu Knoten hinzu, die von der Klasse XmlCharacterData erben, indem Sie die AppendData-, InsertData- oder ReplaceData-Methoden verwenden.

  • Ändern Sie den Inhalt, indem Sie einen Bereich von Zeichen entfernen, wobei die DeleteData Methode für Knotentypen verwendet wird, die von XmlCharacterData erben.

Eine einfache Technik zum Ändern des Werts eines Knotens ist die Verwendung node.Value = "new value";. In der folgenden Tabelle sind die Knotentypen aufgeführt, für die diese einzelne Codezeile funktioniert, und genau, welche Daten für diesen Knotentyp geändert werden.

Knotentyp Geänderte Daten
Merkmal Der Wert des Attributs.
CDATASection Der Inhalt von CDATASection.
Kommentar Der Inhalt des Kommentars.
Verarbeitungsanweisung Der Inhalt, mit Ausnahme des Ziels.
Text Der Inhalt des Texts.
XmlDeclaration Der Inhalt der Deklaration, mit Ausnahme des <?xml?> Markups.
Leerzeichen Der Wert des Leerraums. Sie können festlegen, dass der Wert einer der vier erkannten XML-Leerraumzeichen ist: Leerzeichen, Tabulator, Wagenrücklauf oder Zeilenvorschub.
SignifikanteWhitespace Der Wert des signifikanten Leerraums. Sie können festlegen, dass der Wert einer der vier erkannten XML-Leerraumzeichen ist: Leerzeichen, Tabulator, Wagenrücklauf oder Zeilenvorschub.

Jeder Knotentyp, der nicht in der Tabelle aufgeführt ist, ist kein gültiger Knotentyp, um einen Wert festzulegen. Durch Festlegen eines Werts für einen anderen Knotentyp wird eine InvalidOperationException ausgelöst.

Die InnerXml-Eigenschaft ändert das Markup der untergeordneten Knoten des aktuellen Knotens. Durch Festlegen dieser Eigenschaft werden die untergeordneten Knoten durch analysierten Inhalt der angegebenen Zeichenfolge ersetzt. Die Analyse erfolgt im aktuellen Namespacekontext. Darüber hinaus werden von InnerXml redundante Namespacedeklarationen entfernt. Daher erhöhen zahlreiche Ausschneid- und Einfügevorgänge nicht die Größe Ihres Dokuments durch überflüssige Namespace-Deklarationen. Ein Codebeispiel, das die Auswirkung von Namespaces auf den InnerXml Vorgang zeigt, finden Sie in der InnerXml Eigenschaft.

Bei Verwendung der Methoden ReplaceData und RemoveChild gibt die Methode den ersetzten oder entfernten Knoten zurück. Dieser Knoten kann dann an einer anderen Stelle im XML-Dokumentobjektmodell (DOM) erneut eingefügt werden. Die ReplaceData Methode führt zwei Überprüfungen des Knotens durch, der in das Dokument eingefügt wird. Bei der ersten Validierung wird sichergestellt, dass der Knoten dem Knoten untergeordnet wird, der untergeordnete Knoten dieses Typs aufweisen kann. Bei der zweiten Validierung wird sichergestellt, dass der eingefügte Knoten kein indirekt übergeordneter Knoten des Knotens ist, dem er untergeordnet wird. Ist eine dieser Bedingungen nicht erfüllt, wird eine InvalidOperationException ausgelöst.

Das Hinzufügen oder Entfernen von schreibgeschützten untergeordneten Elementen eines Knotens, der bearbeitet werden kann, ist ein gültiger Vorgang. Durch Versuche, den schreibgeschützten Knoten selbst zu ändern, wird eine InvalidOperationException ausgelöst. Ein Bespiel dafür ist das Verändern der untergeordneten Elemente eines XmlEntityReference-Knotens. Die untergeordneten Elemente sind schreibgeschützt und können nicht verändert werden. Jeder Versuch, sie zu ändern, löst ein InvalidOperationException aus.

Siehe auch