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 . |