Přehled os LINQ to XML

Po vytvoření stromu XML nebo načtení dokumentu XML do stromu XML můžete dotazovat na vyhledání elementů a atributů a načtení jejich hodnot. Kolekce načítáte metodami osy, označované také jako osy. Některé osy jsou metody v XElement třídách XDocument , které vracejí IEnumerable<T> kolekce. Některé osy jsou rozšiřující metody třídy Extensions . Osy implementované jako rozšiřující metody pracují s kolekcemi a vracející kolekce.

Jak je popsáno v přehledu třídy XElement, XElement objekt představuje jeden uzel elementu. Obsah prvku může být složitý (někdy označovaný jako strukturovaný obsah) nebo může být jednoduchým prvkem. Jednoduchý prvek může být prázdný nebo může obsahovat hodnotu. Pokud uzel obsahuje strukturovaný obsah, můžete k načtení výčtů následnických prvků použít různé metody osy. Nejčastěji používané metody osy jsou Elements a Descendants.

Kromě metod osy, které vracejí kolekce, existují dvě další metody, které běžně použijete v dotazech LINQ to XML. Metoda Element vrátí jeden XElement. Metoda Attribute vrátí jeden XAttribute.

Pro mnoho účelů poskytují dotazy LINQ nejúčinnější způsob, jak prozkoumat strom, extrahovat z nich data a transformovat je. Dotazy LINQ pracují s objekty, které implementují IEnumerable<T>, a LINQ to XML osy vrácení IEnumerable<T>XElement kolekcí a IEnumerable<T>XAttribute kolekcí. Tyto kolekce potřebujete k provedení dotazů.

Kromě metod osy, které načítají kolekce prvků a atributů, existují metody osy, které umožňují iterovat strom ve velkém detailu. Například místo práce s prvky a atributy můžete pracovat s uzly stromu. Uzly jsou jemněji členitost než prvky a atributy. Při práci s uzly můžete zkoumat komentáře XML, textové uzly, pokyny ke zpracování a další. Tato funkce je důležitá například pro někoho, kdo píše textový procesor a chce ukládat dokumenty jako XML. Většina programátorů XML se ale primárně zabývá elementy, atributy a jejich hodnotami.

Metody pro načtení kolekce prvků

Následuje souhrn metod XElement třídy (nebo jejích základních tříd), které voláte XElement k vrácení kolekce prvků.

metoda Popis
XNode.Ancestors IEnumerable<T> Vrátí hodnotu nadřazeného XElement prvku. Přetížení vrátí IEnumerable<T> hodnotu nadřazených XElement objektů, které mají zadané XName.
XContainer.Descendants IEnumerable<T> Vrátí hodnotu XElement následníků tohoto prvku. Přetížení vrátí IEnumerable<T> hodnotu potomků XElement , které mají zadané XName.
XContainer.Elements IEnumerable<T> Vrátí podřízené XElement prvky tohoto prvku. Přetížení vrátí IEnumerable<T> hodnotu podřízených XElement prvků, které mají zadané XName.
XNode.ElementsAfterSelf IEnumerable<T> Vrátí hodnotu prvkůXElement, které přicházejí za tímto prvkem. Přetížení vrátí IEnumerable<T> část XElement prvků za tímto prvkem, které mají zadané XName.
XNode.ElementsBeforeSelf IEnumerable<T> Vrátí prvek, XElement který přichází před tímto prvkem. Přetížení vrátí IEnumerable<T> hodnotu prvků XElement před tímto prvkem, které mají zadané XName.
XElement.AncestorsAndSelf IEnumerable<T> Vrátí hodnotu XElement tohoto prvku a jejích nadřazených prvků. Přetížení vrátí IEnumerable<T> hodnotu z XElement prvků, které mají zadané XName.
XElement.DescendantsAndSelf IEnumerable<T> Vrátí hodnotu XElement tohoto prvku a jeho potomků. Přetížení vrátí IEnumerable<T> hodnotu z XElement prvků, které mají zadané XName.

Metoda pro načtení jednoho prvku

Následující metoda načte jednu podřízenou z objektu XElement .

metoda Popis
XContainer.Element Vrátí první podřízený XElement objekt se zadaným XNameobjektem .

Metoda pro načtení kolekce atributů

Následující metoda načte atributy z objektu XElement .

metoda Popis
XElement.Attributes IEnumerable<T> Vrátí hodnotu všech XAttribute atributů.

Metoda pro načtení jednoho atributu

Následující metoda načte jeden atribut z objektu XElement .

metoda Popis
XElement.Attribute Vrátí zadanou XAttributeXNamehodnotu .