Platný obsah objektů XElement a XDocument (LINQ to XML)

Tento článek popisuje platné argumenty, které lze předat konstruktorům, a metody, které používáte k přidání obsahu do prvků a dokumentů.

Platné typy pro konstruktor XElement

Dotazy se často vyhodnocují XElement jako IEnumerable<T> nebo IEnumerable<T> z XAttribute. Konstruktoru můžete předat kolekce XElement nebo XAttribute objekty XElement . Proto je vhodné předat výsledky dotazu jako obsah do metod a konstruktorů, které používáte k naplnění stromů XML.

Při přidávání jednoduchého obsahu lze do této metody předat různé typy, včetně::

Při přidávání složitého obsahu je možné této metodě předat různé typy, včetně:

Pokud se objekt implementuje IEnumerable<T>, kolekce v objektu je výčtu a všechny položky v kolekci se přidají. Pokud kolekce obsahuje XNode nebo XAttribute objekty, každá položka v kolekci se přidá samostatně. Pokud kolekce obsahuje text (nebo objekty převedené na text), je text v kolekci zřetězen a přidán jako jeden textový uzel.

Pokud je nullobsah, nic se nedají přidat. Při předávání kolekce mohou být nullpoložky v kolekci . Položka null v kolekci nemá žádný vliv na strom.

Přidaný atribut musí mít jedinečný název v rámci jeho obsahující prvek.

Při přidávání XNode nebo XAttribute objekty, pokud nový obsah nemá nadřazený, jsou objekty jednoduše připojeny ke stromu XML. Pokud je nový obsah již nadřazený a je součástí jiného stromu XML, nový obsah se naklonuje a nově naklonovaný obsah se připojí ke stromu XML.

Platné typy pro konstruktor XDocument

Do dokumentu nelze přidat atributy a jednoduchý obsah.

Neexistuje mnoho scénářů, které vyžadují, abyste vytvořili .XDocument Místo toho můžete stromy XML obvykle vytvářet pomocí kořenového XElement uzlu. Pokud nemáte konkrétní požadavek na vytvoření dokumentu (například proto, že musíte vytvořit pokyny ke zpracování a komentáře na nejvyšší úrovni nebo musíte podporovat typy dokumentů), je často vhodnější použít XElement jako kořenový uzel.

Mezi platné typy konstruktoru XDocument patří:

  • Nula nebo jeden XDocumentType objekt. Typy dokumentů musí být před elementem.
  • Nula nebo jeden prvek.
  • Nula nebo více komentářů.
  • Žádné nebo více pokynů ke zpracování.
  • Nula nebo více textových uzlů, které obsahují pouze prázdné znaky.

Konstruktory a funkce pro přidání obsahu

Následující metody umožňují přidat podřízený obsah do objektu XElementXDocumentnebo do:

metoda Popis
XElement Vytvoří .XElement
XDocument Vytvoří .XDocument
Add Přidá na konec podřízeného obsahu XElement nebo XDocument.
AddAfterSelf Přidá obsah za .XNode
AddBeforeSelf Přidá obsah před .XNode
AddFirst Přidá obsah na začátek podřízeného obsahu XContainersouboru .
ReplaceAll Nahradí veškerý obsah (podřízené uzly a atributy) objektu XElement.
ReplaceAttributes Nahradí atributy objektu XElement.
ReplaceNodes Nahradí podřízené uzly novým obsahem.
ReplaceWith Nahradí uzel novým obsahem.

Viz také