Knooppunten, inhoud en waarden wijzigen in een XML-document
Er zijn veel manieren waarop u de knooppunten en inhoud in een document kunt wijzigen. U kunt:
Wijzig de waarde van knooppunten met behulp van de Value eigenschap.
Wijzig een hele set knooppunten door de knooppunten te vervangen door nieuwe knooppunten. Dit wordt gedaan met behulp van de InnerXml eigenschap.
Vervang bestaande knooppunten door nieuwe knooppunten met behulp van de RemoveChild methode.
Voeg extra tekens toe aan knooppunten die overnemen van de XmlCharacterData klasse met behulp van de AppendData, InsertDataof ReplaceData methoden.
Wijzig de inhoud door een bereik met tekens te verwijderen met behulp van de DeleteData methode voor knooppunttypen die overnemen van XmlCharacterData.
Een eenvoudige techniek voor het wijzigen van de waarde van een knooppunt is om te gebruiken node.Value = "new value";
. De volgende tabel bevat de knooppunttypen waarop deze coderegel werkt en precies op welke gegevens voor dat knooppunttype wordt gewijzigd.
Soort knooppunt | Gegevens zijn gewijzigd |
---|---|
Kenmerk | De waarde van het kenmerk. |
CDATASection | De inhoud van de CDATASection. |
Opmerking | De inhoud van de opmerking. |
ProcessingInstruction | De inhoud, met uitzondering van het doel. |
Sms verzenden | De inhoud van de tekst. |
XmlDeclaration | De inhoud van de verklaring, met uitzondering van de <?xml en ?> markeringen. |
Whitespace | De waarde van de witruimte. U kunt de waarde instellen op een van de vier herkende XML-witruimtetekens: spatie, tabblad, CR of LF. |
SignificantWhitespace | De waarde van de significante witruimte. U kunt de waarde instellen op een van de vier herkende XML-witruimtetekens: spatie, tabblad, CR of LF. |
Een knooppunttype dat niet in de tabel wordt vermeld, is geen geldig knooppunttype waarop een waarde moet worden ingesteld. Als u een waarde instelt op een ander knooppunttype, wordt er een InvalidOperationException.
De InnerXml eigenschap wijzigt de markering van de onderliggende knooppunten voor het huidige knooppunt. Als u deze eigenschap instelt, worden de onderliggende knooppunten vervangen door de geparseerde inhoud van de opgegeven tekenreeks. De parsering wordt uitgevoerd in de huidige naamruimtecontext. Bovendien InnerXml verwijdert u redundante naamruimtedeclaraties. Als gevolg hiervan vergroten talloze knip- en plakbewerkingen de grootte van uw document niet met redundante naamruimtedeclaraties. Zie de InnerXml eigenschap voor een codevoorbeeld met het effect van naamruimten op de InnerXml bewerking.
Wanneer u de ReplaceData en RemoveChild methoden gebruikt, retourneren de methoden het vervangen of verwijderde knooppunt. Dit knooppunt kan vervolgens ergens anders worden geplaatst in het XML Document Object Model (DOM). De ReplaceData methode voert twee validatiecontroles uit op het knooppunt dat in het document wordt ingevoegd. De eerste controle zorgt ervoor dat het knooppunt een onderliggend element wordt van een knooppunt dat onderliggende knooppunten van het type kan hebben. De tweede controle zorgt ervoor dat het knooppunt dat wordt ingevoegd geen bovenliggend element is van het knooppunt waarvan het een onderliggend element wordt. Het schenden van een van deze voorwaarden gooit een InvalidOperationException.
Het is geldig om een alleen-lezen onderliggend element toe te voegen aan of te verwijderen uit een knooppunt dat kan worden bewerkt. Pogingen om het alleen-lezen knooppunt zelf te wijzigen, genereert echter een InvalidOperationException. Een voorbeeld hiervan is het wijzigen van de onderliggende elementen van een XmlEntityReference knooppunt. De kinderen hebben het kenmerk Alleen-lezen en kunnen niet worden gewijzigd. Elke poging om ze te wijzigen, genereert een InvalidOperationException.