Översikt över LINQ till XML-axlar

När du har skapat ett XML-träd eller läst in ett XML-dokument i ett XML-träd kan du fråga det för att hitta element och attribut och hämta deras värden. Du hämtar samlingar via axelmetoderna, även kallade axlar. Några av axlarna utgör metoder i klasserna XElement och XDocument som returnerar IEnumerable<T> samlingar. Några av axlarna är tilläggsmetoder i Extensions klassen. Axlarna som implementeras som tilläggsmetoder fungerar på samlingar och returnerar samlingar.

Som beskrivs i översikten över XElement-klassen representerar ett XElement objekt en enda elementnod. Innehållet i ett element kan vara komplext (kallas ibland strukturerat innehåll), eller så kan det vara ett enkelt element. Ett enkelt element kan vara tomt eller innehålla ett värde. Om noden innehåller strukturerat innehåll kan du använda de olika axelmetoderna för att hämta uppräkningar av underordnade element. De vanligaste axelmetoderna är Elements och Descendants.

Förutom axelmetoderna, som returnerar samlingar, finns det ytterligare två metoder som du ofta använder i LINQ till XML-frågor. Metoden Element returnerar en enda XElement. Metoden Attribute returnerar en enda XAttribute.

I många syften är LINQ-frågor det mest kraftfulla sättet att undersöka ett träd, extrahera data från det och transformera det. LINQ-frågor fungerar på objekt som implementerar IEnumerable<T>, och axlarna i LINQ till XML returnerar IEnumerable<T> av XElement-samlingar och IEnumerable<T> av XAttribute-samlingar. Du behöver dessa samlingar för att kunna göra dina frågor.

Förutom axelmetoderna som hämtar samlingar av element och attribut finns det axelmetoder som gör att du kan iterera genom trädet i detalj. I stället för att hantera element och attribut kan du till exempel arbeta med noderna i trädet. Noder är en finare nivå av kornighet än element och attribut. När du arbetar med noder kan du granska XML-kommentarer, textnoder, bearbetningsinstruktioner med mera. Den här funktionen är till exempel viktig för någon som skriver en ordbehandlare och vill spara dokument som XML. De flesta XML-programmerare handlar dock främst om element, attribut och deras värden.

Metoder för att hämta en samling element

Följande är en sammanfattning av metoderna för XElement-klassen (eller dess basklasser) som du anropar på en XElement för att returnera en samling element.

Metod Beskrivning
XNode.Ancestors Returnerar en IEnumerable<T> av XElement av de överordnade element som finns i det här elementet. En överbelastning returnerar en IEnumerable<T> av XElement förfäderna som har specificerat XName.
XContainer.Descendants Returnerar en IEnumerable<T> av XElement underordnade elementet. En överlagring returnerar en IEnumerable<T> av XElement de underordnade som har den angivna XName.
XContainer.Elements Returnerar en IEnumerable<T> av XElement de underordnade elementen i det här elementet. En överbelastning returnerar en IEnumerable<T> av XElement av de underordnade element som har det angivna XName.
XNode.ElementsAfterSelf Returnerar en IEnumerable<T> av XElement av elementen som kommer efter det här elementet. En överbelastning returnerar en IEnumerable<T> av XElement av elementen efter detta element som har den specificerade XName.
XNode.ElementsBeforeSelf Returnerar en IEnumerable<T> av XElement för de element som kommer före det här elementet. En överlagring returnerar en IEnumerable<T> av XElement elementen före det här elementet som har angivet XName.
XElement.AncestorsAndSelf Returnerar ett IEnumerable<T> av XElement av det här elementet och dess överordnade element. En överbelastning returnerar en IEnumerable<T> av XElement för de element som har den angivna XName.
XElement.DescendantsAndSelf Returnerar ett IEnumerable<T> av XElement för det här elementet och dess underordnade element. En överbelastning returnerar en IEnumerable<T> av XElement för de element som har den angivna XName.

Metod för att hämta ett enda element

Den följande metoden hämtar ett enstaka barn från ett XElement-objekt.

Metod Beskrivning
XContainer.Element Returnerar det första underordnade XElement objektet som har det specificerade XName.

Metod för att hämta en samling attribut

Följande metod hämtar attribut från ett XElement objekt.

Metod Beskrivning
XElement.Attributes Returnerar en IEnumerable<T> av XAttribute för alla attribut.

Metod för att hämta ett enda attribut

Följande metod hämtar ett enda attribut från ett XElement objekt.

Metod Beskrivning
XElement.Attribute Returnerar XAttribute som har den angivna XName.