Delen via


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 enkele coderegel werkt en welke gegevens voor dat knooppunttype precies worden gewijzigd.

Knooppunttype Gegevens zijn gewijzigd
Eigenschap De waarde van het kenmerk.
CDATASection De inhoud van de CDATASection.
Opmerking De inhoud van de opmerking.
Verwerkingsinstructie De inhoud, met uitzondering van het doel.
Tekst De inhoud van de tekst.
XmlDeclaratie De inhoud van de verklaring, met uitzondering van de <?xml en ?> markeringen.
Witte ruimte De waarde van de witruimte. U kunt de waarde instellen op een van de vier herkende XML-witruimtetekens: spatie, tabblad, CR of LF.
SignificanteWitruimte 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. Wanneer u een waarde instelt op een ander knooppunttype, veroorzaakt dit een InvalidOperationException-fout.

De eigenschap InnerXml verandert de opmaak van de subknooppunten van het huidige knooppunt. Bij het instellen van deze eigenschap worden de kinderknooppunten 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 check zorgt ervoor dat het knooppunt een kind wordt van een knooppunt dat kindknooppunten van zijn type kan hebben. De tweede controle zorgt ervoor dat het knooppunt dat wordt ingevoegd geen voorouder is van het knooppunt waarvan het een kind wordt. Het overtreden van een van deze voorwaarden werpt een InvalidOperationException.

Het is geldig om een alleen-lezen kind toe te voegen aan of te verwijderen uit een bewerkbaar knooppunt. Pogingen om de alleen-lezen-node zelf te wijzigen, veroorzaakt echter een InvalidOperationException. Een voorbeeld hiervan is het wijzigen van de kinderen 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.

Zie ook