Sdílet prostřednictvím


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í jako IEnumerable<T> z XElement nebo IEnumerable<T> z XAttribute. Kolekce XElement nebo XAttribute objektů můžete předat konstruktoru 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 objekt implementuje IEnumerable<T>, kolekce v objektu je vyjmenována a všechny položky v kolekci jsou přidány. 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 obsah null, nic se nedá přidat. Při předávání kolekce mohou být položky v kolekci označeny jako null. Položka null v kolekci nemá na strom žádný vliv.

Přidaný atribut musí mít jedinečný název v rámci svého obsahujícího prvku.

Při přidávání XNode nebo XAttribute objektů, 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 uzlu XElement. 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 pohodlnější používat XElement jako kořenový uzel.

Mezi platné typy konstruktoru XDocument patří:

  • Nula objektů nebo jeden XDocumentType. Typy dokumentů musí být před prvkem.
  • Nula nebo jeden prvek.
  • Nula nebo více komentářů.
  • Nula nebo více pokynů ke zpracování.
  • Nula nebo více textových uzlů, které obsahují pouze bílé mezery.

Konstruktory a funkce pro přidání obsahu

Následující metody umožňují přidat podřízený obsah do XElement nebo XDocument:

Metoda Popis
XElement Vytvoří XElement.
XDocument Vytvoří XDocument.
Add Přidá na konec podřízených elementů 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 XContainer.
ReplaceAll Nahradí veškerý obsah (podřízené uzly a atributy) objektu XElement.
ReplaceAttributes Nahrazuje atributy objektu XElement.
ReplaceNodes Nahradí dětské uzly novým obsahem.
ReplaceWith Nahradí uzel novým obsahem.

Viz také