Úprava uzlů, obsahu a hodnot v dokumentu XML
Uzly a obsah v dokumentu můžete upravovat mnoha způsoby. Můžete provádět následující akce:
Změňte hodnotu uzlů pomocí Value vlastnosti.
Upravte celou sadu uzlů nahrazením uzlů novými uzly. To se provádí pomocí InnerXml vlastnosti.
Nahraďte existující uzly novými uzly pomocí RemoveChild metody.
Přidejte další znaky do uzlů, které dědí z XmlCharacterData třídy pomocí AppendDatametody , InsertDatanebo ReplaceData metody.
Upravte obsah odebráním rozsahu znaků pomocí DeleteData metody u typů uzlů, které dědí z XmlCharacterData.
Jednoduchá technika pro změnu hodnoty uzlu je použít node.Value = "new value";
. Následující tabulka uvádí typy uzlů, na které tento jediný řádek kódu funguje, a přesně jaká data pro daný typ uzlu se mění.
Typ uzlu | Změna dat |
---|---|
Atribut | Hodnota atributu. |
CDATASection | Obsah CDATASection. |
Komentář | Obsah komentáře. |
Processinginstruction | Obsah s výjimkou cíle. |
Text | Obsah textu. |
XmlDeclaration | Obsah deklarace, s výjimkou <?xml označení a ?> revizí. |
Whitespace | Hodnota prázdného místa. Hodnotu můžete nastavit jako jeden ze čtyř rozpoznaných znaků prázdných znaků XML: mezera, tabulátor, CR nebo LF. |
SignificantWhitespace | Hodnota významného prázdného místa. Hodnotu můžete nastavit jako jeden ze čtyř rozpoznaných znaků prázdných znaků XML: mezera, tabulátor, CR nebo LF. |
Jakýkoli typ uzlu, který není uvedený v tabulce, není platným typem uzlu pro nastavení hodnoty. Nastavení hodnoty u jakéhokoli jiného typu uzlu vyvolá výjimku InvalidOperationException.
Vlastnost InnerXml změní kód podřízených uzlů pro aktuální uzel. Nastavení této vlastnosti nahradí podřízené uzly parsovaným obsahem daného řetězce. Analýza se provádí v aktuálním kontextu oboru názvů. Kromě toho InnerXml odebere redundantní deklarace oboru názvů. V důsledku toho mnoho operací vyjmutí a vložení nezvětší velikost dokumentu pomocí redundantních deklarací oboru názvů. Příklad kódu znázorňující účinek oborů názvů na InnerXml operaci, viz InnerXml vlastnost.
Při použití ReplaceData metod a RemoveChild metod vrátí nahrazený nebo odebraný uzel. Tento uzel je pak možné znovu vložit někam jinam v modelu DOM (Document Object Model) XML. Metoda ReplaceData provádí dvě kontroly ověření na uzlu, který se vkládá do dokumentu. První kontrola zajistí, že se uzel stane podřízeným uzlem, který může mít podřízené uzly svého typu. Druhá kontrola zajistí, že vložený uzel není nadřazeným uzlem, na který se stává podřízeným uzlem. Porušení některé z těchto podmínek vyvolá InvalidOperationExceptionvýjimku .
Je platné přidat nebo odebrat podřízenou položku jen pro čtení z uzlu, který lze upravit. Pokusy o úpravu samotného uzlu jen pro čtení však vyvolá InvalidOperationExceptionvýjimku . Příkladem je úprava podřízených XmlEntityReference položek uzlu. Podřízené položky jsou jen pro čtení a nelze je upravovat. Jakýkoli pokus o jejich úpravu vyvolá výjimku InvalidOperationException.