Udostępnij za pośrednictwem


Modyfikowanie węzłów, zawartości i wartości w dokumencie XML

Istnieje wiele sposobów modyfikowania węzłów i zawartości w dokumencie. Masz następujące możliwości:

  • Zmień wartość węzłów przy użyciu Value właściwości .

  • Zmodyfikuj cały zestaw węzłów, zastępując węzły nowymi węzłami. Odbywa się to przy użyciu InnerXml właściwości .

  • Zastąp istniejące węzły nowymi węzłami przy użyciu RemoveChild metody .

  • Dodaj dodatkowe znaki do węzłów, które dziedziczą z klasy XmlCharacterData, przy użyciu metod AppendData, InsertData lub ReplaceData.

  • Zmodyfikuj zawartość, usuwając zakres znaków przy użyciu metody DeleteData na typach węzłów, które dziedziczą po XmlCharacterData.

Prostą techniką zmiany wartości węzła jest użycie metody node.Value = "new value";. W poniższej tabeli wymieniono typy węzłów, na których działa ten pojedynczy wiersz kodu i jakie dane dla tego typu węzła są zmieniane.

Typ węzła Zmieniono dane
Atrybut Wartość atrybutu.
CDATASection Zawartość sekcji CDATA.
Komentarz Zawartość komentarza.
Instrukcja przetwarzania Zawartość, z wyłączeniem obiektu docelowego.
Tekst Zawartość tekstu.
Deklaracja XML Zawartość deklaracji, z wyłączeniem znaczników <?xml i ?>.
Białe znaki Wartość białej przestrzeni. Można ustawić wartość na jedną z czterech rozpoznanych białych znaków XML: spacji, tabulatora, CR lub LF.
Znacząca Biała Przestrzeń Wartość znaczącej białej przestrzeni. Można ustawić wartość na jedną z czterech rozpoznanych białych znaków XML: spacji, tabulatora, CR lub LF.

Każdy typ węzła, którego nie ma na liście w tabeli, nie jest prawidłowym typem węzła do ustawienia wartości. Ustawienie wartości dla dowolnego innego typu węzła zgłasza błąd InvalidOperationException.

Właściwość InnerXml zmienia znaczniki węzłów podrzędnych dla bieżącego węzła. Ustawienie tej właściwości zastępuje węzły podrzędne przeanalizowaną zawartością danego ciągu. Parsowanie odbywa się w bieżącym kontekście przestrzeni nazw. Ponadto InnerXml usuwa nadmiarowe deklaracje przestrzeni nazw. W związku z tym liczne operacje wycinania i wklejania nie zwiększają rozmiaru dokumentu przy użyciu nadmiarowych deklaracji przestrzeni nazw. Aby zapoznać się z przykładem kodu pokazującego wpływ przestrzeni nazw na operację InnerXml, zobacz właściwość InnerXml.

W przypadku używania metod ReplaceData i RemoveChild, metody zwracają zastąpiony lub usunięty węzeł. Ten węzeł można następnie ponownie przestawić w innym miejscu w modelu obiektów dokumentów XML (DOM). Metoda ReplaceData wykonuje dwie kontrole poprawności w węźle wstawionym do dokumentu. Pierwsze sprawdzenie gwarantuje, że węzeł staje się elementem podrzędnym węzła, który może mieć węzły podrzędne tego typu. Drugie sprawdzenie gwarantuje, że wstawiany węzeł nie jest przodkiem węzła, którego ma stać się potomkiem. Naruszenie jednego z tych warunków zgłasza błąd InvalidOperationException.

Możliwe jest dodanie lub usunięcie elementu podrzędnego tylko do odczytu w węźle, który można edytować. Jednak próba zmodyfikowania samego węzła o atrybucie tylko do odczytu zgłasza błąd InvalidOperationException. Przykładem jest modyfikowanie elementów podrzędnych węzła XmlEntityReference. Dzieci są tylko do odczytu i nie można ich modyfikować. Każda próba ich zmodyfikowania zgłasza błąd InvalidOperationException.

Zobacz także