Megosztás a következőn keresztül:


Csomópontok, tartalom és értékek módosítása XML-dokumentumban

A dokumentumok csomópontjait és tartalmát sokféleképpen módosíthatja. Ön megteheti:

  • Módosítsa a csomópontok értékét a Value tulajdonság használatával.

  • Módosítsa a csomópontok teljes készletét úgy, hogy a csomópontokat új csomópontokra cseréli. Ez a InnerXml tulajdonság használatával történik.

  • A metódussal cserélje le a RemoveChild meglévő csomópontokat új csomópontokra.

  • Adjon hozzá további karaktereket az osztálytól XmlCharacterData öröklő csomópontokhoz a AppendData, InsertDatavagy ReplaceData metódusok használatával.

  • Módosítsa a tartalmat úgy, hogy eltávolít egy karaktertartományt az DeleteData metódus használatával azoknál a csomóponttípusoknál, amelyek öröklődnek a XmlCharacterData típusból.

A csomópont értékének módosítására szolgáló egyszerű technika a használata node.Value = "new value";. Az alábbi táblázat felsorolja azokat a csomóponttípusokat, amelyeken ez az egysoros kód működik, és hogy pontosan milyen adatok változnak az adott csomóponttípushoz.

Csomópont típusa Az adatok módosultak
Jellemző Az attribútum értéke.
CDATASection A CDATASection tartalma.
Megjegyzés A megjegyzés tartalma.
Feldolgozási utasítás A tartalom, a cél kivételével.
Szöveg A szöveg tartalma.
XML-nyilatkozat A nyilatkozat tartalma, a <?xml és ?> jelölések kivételével.
Térköz A fehér terület értéke. Beállíthatja, hogy az érték a négy felismert XML-szóköz karakter egyike legyen: szóköz, tabulátor, CR vagy LF.
JelentősHelyköz A jelentős fehér terület értéke. Beállíthatja, hogy az érték a négy felismert XML-szóköz karakter egyike legyen: szóköz, tabulátor, CR vagy LF.

Azok a csomóponttípusok, amelyek nem szerepelnek a táblázatban, nem érvényesek érték beállításához. Ha bármely más csomóponttípuson beállít egy értéket, egy InvalidOperationException hibát vált ki.

A InnerXml tulajdonság módosítja az aktuális csomópont gyermekcsomópontjainak jelölését. A tulajdonság beállításával a gyermekcsomópontok az adott karakterlánc beolvasott tartalmára cserélődnek. Az elemzés az aktuális névtérkörnyezetben történik. Emellett InnerXml eltávolítja a redundáns névtér-deklarációkat. Ennek eredményeképpen számos kivágási és beillesztési művelet nem növeli a dokumentum méretét redundáns névtérdeklarációkkal. A InnerXml műveletre a névterek gyakorolt hatását bemutató példakódért tekintse meg a InnerXml tulajdonságot.

Amikor a ReplaceData és RemoveChild metódusokat használják, a metódusok visszaadják a lecserélt vagy eltávolított csomópontot. Ez a csomópont ezután az XML-dokumentumobjektum-modell (DOM) máshol is újra visszahelyezhető. A ReplaceData metódus két ellenőrzési ellenőrzést végez a dokumentumba beszúrt csomóponton. Az első ellenőrzés biztosítja, hogy a csomópont olyan csomópont gyermekévé váljon, amelynek a típusának megfelelő gyermekcsomópontjai lehetnek. A második ellenőrzés biztosítja, hogy a beszúrt csomópont ne legyen annak a csomópontnak az őse, amely gyermekévé válik. E bármelyik feltétel megszegése kivált egy InvalidOperationException.

A szerkeszthető csomópontból csak olvasható gyermek hozzáadása vagy eltávolítása érvényes. Azonban, ha megpróbálja módosítani az írásvédett csomópontot, az egy InvalidOperationException-t dob. Erre példa egy XmlEntityReference csomópont gyermekeinek módosítása. A gyermekek írásvédettek, és nem módosíthatók. Bármilyen módosítási kísérlet dob egy InvalidOperationException.

Lásd még