Osie LINQ to XML — przegląd

Po utworzeniu drzewa XML lub załadowaniu dokumentu XML do drzewa XML możesz wysłać do niego zapytanie, aby znaleźć elementy i atrybuty i pobrać ich wartości. Kolekcje są pobierane za pośrednictwem metod osi, nazywanych również osiami. Niektóre osie to metody w XElement klasach i XDocument , które zwracają IEnumerable<T> kolekcje. Niektóre osie to metody rozszerzeń w Extensions klasie . Osie implementowane jako metody rozszerzenia działają na kolekcjach i kolekcjach zwracanych.

Zgodnie z opisem w przegląduXElement klasy XElement obiekt reprezentuje jeden węzeł elementu. Zawartość elementu może być złożona (czasami nazywana zawartością ustrukturyzowaną) lub może być prostym elementem. Prosty element może być pusty lub może zawierać wartość. Jeśli węzeł zawiera zawartość ustrukturyzowaną, możesz użyć różnych metod osi, aby pobrać wyliczenia elementów potomnych. Najczęściej używane metody osi to Elements i Descendants.

Oprócz metod osi, które zwracają kolekcje, istnieją jeszcze dwie metody, które są często używane w zapytaniach LINQ to XML. Metoda Element zwraca pojedynczy XElementelement . Metoda Attribute zwraca pojedynczy XAttributeelement .

W wielu celach zapytania LINQ zapewniają najbardziej zaawansowany sposób badania drzewa, wyodrębniania z niego danych i przekształcania ich. Zapytania LINQ działają na obiektach implementujących IEnumerable<T>osie LINQ to XML zwracane IEnumerable<T>XElement kolekcje i IEnumerable<T>XAttribute kolekcje. Te kolekcje są potrzebne do wykonywania zapytań.

Oprócz metod osi, które pobierają kolekcje elementów i atrybutów, istnieją metody osi, które pozwalają iterować przez drzewo bardzo szczegółowo. Na przykład zamiast zajmować się elementami i atrybutami, możesz pracować z węzłami drzewa. Węzły są bardziej szczegółowym poziomem szczegółowości niż elementy i atrybuty. Podczas pracy z węzłami można sprawdzić komentarze XML, węzły tekstowe, instrukcje przetwarzania i nie tylko. Ta funkcja jest ważna, na przykład dla kogoś, kto pisze edytor tekstów i chce zapisać dokumenty jako XML. Jednak większość programistów XML dotyczy głównie elementów, atrybutów i ich wartości.

Metody pobierania kolekcji elementów

Poniżej przedstawiono podsumowanie metod XElement klasy (lub jej klas bazowych), które są wywoływane na XElement obiekcie w celu zwrócenia kolekcji elementów.

Metoda opis
XNode.Ancestors Zwraca element IEnumerable<T>XElement z elementów przodków tego elementu. Przeciążenie zwraca element IEnumerable<T> elementów przodków XElement , które mają określony XNameelement .
XContainer.Descendants Zwraca element IEnumerable<T>XElement potomny tego elementu. Przeciążenie zwraca element IEnumerable<T> podrzędny XElement z określonym XNameelementem podrzędnym .
XContainer.Elements Zwraca liczbę IEnumerable<T>XElement elementów podrzędnych tego elementu. Przeciążenie zwraca element IEnumerable<T> elementów podrzędnych XElement , które mają określony XNameelement .
XNode.ElementsAfterSelf Zwraca element IEnumerable<T> elementów XElement , które pochodzą po tym elemenie. Przeciążenie zwraca element IEnumerable<T> z XElement elementów po tym elemecie, który ma określony XNameelement .
XNode.ElementsBeforeSelf Zwraca element IEnumerable<T> z XElement elementów, które pochodzą przed tym elementem. Przeciążenie zwraca element IEnumerable<T> z XElement elementów przed tym elementem, które mają określony XNameelement .
XElement.AncestorsAndSelf Zwraca element IEnumerable<T>XElement z tego elementu i jego elementów nadrzędnych. Przeciążenie zwraca element IEnumerable<T> z XElement elementów, które mają określony XNameelement .
XElement.DescendantsAndSelf Zwraca element IEnumerable<T>XElement z tego elementu i jego elementów podrzędnych. Przeciążenie zwraca element IEnumerable<T> z XElement elementów, które mają określony XNameelement .

Metoda pobierania pojedynczego elementu

Poniższa metoda pobiera pojedynczy element podrzędny z XElement obiektu.

Metoda opis
XContainer.Element Zwraca pierwszy obiekt podrzędny XElement , który ma określony XNameelement .

Metoda pobierania kolekcji atrybutów

Poniższa metoda pobiera atrybuty z XElement obiektu.

Metoda opis
XElement.Attributes Zwraca wartość wszystkich IEnumerable<T>XAttribute atrybutów.

Metoda pobierania pojedynczego atrybutu

Poniższa metoda pobiera pojedynczy atrybut z XElement obiektu.

Metoda opis
XElement.Attribute Zwraca wartość XAttribute , która ma określony XNameelement .