Giltigt innehåll i XElement- och XDocument-objekt (LINQ till XML)

Den här artikeln beskriver giltiga argument som kan skickas till konstruktorer och metoder som du använder för att lägga till innehåll i element och dokument.

Giltiga typer för XElement-konstruktorn

Förfrågningar utvärderas ofta till IEnumerable<T> av XElement eller IEnumerable<T> av XAttribute. Du kan skicka samlingar med XElement- eller XAttribute-objekt till XElement konstruktorn. Därför är det praktiskt att skicka resultatet av en fråga som innehåll till metoder och konstruktorer som du använder för att fylla i XML-träd.

När du lägger till enkelt innehåll kan olika typer skickas till den här metoden, inklusive:

När du lägger till komplext innehåll kan olika typer skickas till den här metoden, inklusive:

Om ett objekt implementerar IEnumerable<T>räknas samlingen i objektet upp och alla objekt i samlingen läggs till. Om samlingen innehåller XNode eller XAttribute objekt läggs varje objekt i samlingen till separat. Om samlingen innehåller text (eller objekt som konverteras till text) sammanfogas texten i samlingen och läggs till som en enda textnod.

Om innehållet är nullläggs ingenting till. När du överför en samling kan objekt i samlingen bli null. Ett null objekt i samlingen påverkar inte trädet.

Ett tillagt attribut måste ha ett unikt namn i dess innehållande element.

När du lägger till XNode- eller XAttribute objekt, om det nya innehållet inte har något överordnat innehåll, kopplas objekten helt enkelt till XML-trädet. Om det nya innehållet redan är överordnat och ingår i ett annat XML-träd klonas det nya innehållet och det nyligen klonade innehållet är kopplat till XML-trädet.

Giltiga typer för XDocument-konstruktorn

Attribut och enkelt innehåll kan inte läggas till i ett dokument.

Det finns inte många scenarier som kräver att du skapar en XDocument. I stället kan du vanligtvis skapa DINA XML-träd med en XElement rotnod. Om du inte har ett specifikt krav på att skapa ett dokument (till exempel för att du måste skapa bearbetningsinstruktioner och kommentarer på den översta nivån, eller om du måste ha stöd för dokumenttyper), är det ofta enklare att använda XElement som rotnod.

Giltiga typer för XDocument konstruktorn innehåller följande:

  • Noll eller ett XDocumentType objekt. Dokumenttyperna måste komma före elementet.
  • Noll eller ett element.
  • Noll eller fler kommentarer.
  • Inga eller flera bearbetningsinstruktioner.
  • Noll eller fler textnoder som endast innehåller tomt utrymme.

Konstruktorer och funktioner för att lägga till innehåll

Med följande metoder kan du lägga till underordnat innehåll i en XElement eller en XDocument:

Metod Beskrivning
XElement Konstruerar en XElement.
XDocument Konstruerar en XDocument.
Add Lägger till i slutet av det underordnade innehållet i XElement eller XDocument.
AddAfterSelf Lägger till innehåll efter XNode.
AddBeforeSelf Lägger till innehåll före XNode.
AddFirst Lägger till innehåll i början av barninnehållet i XContainer.
ReplaceAll Ersätter allt innehåll (underordnade noder och attribut) i en XElement.
ReplaceAttributes Ersätter attributen för en XElement.
ReplaceNodes Ersätter de underordnade noderna med nytt innehåll.
ReplaceWith Ersätter en nod med nytt innehåll.

Se även