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ě::
- String
- Double
- Single
- Decimal
- Boolean
- DateTime
- TimeSpan
- DateTimeOffset
- Libovolný typ, který implementuje
Object.ToString
. - Libovolný typ, který implementuje IEnumerable<T>.
Při přidávání složitého obsahu je možné této metodě předat různé typy, včetně:
- XObject
- XNode
- XAttribute
- Libovolný typ, který implementuje IEnumerable<T>
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 null
obsah, nic se nedají přidat. Při předávání kolekce mohou být null
polož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. |