Extensions.Elements Metoda

Definice

Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.

Přetížení

Name Description
Elements<T>(IEnumerable<T>)

Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.

Elements<T>(IEnumerable<T>, XName)

Vrátí filtrovanou kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající XName.

Poznámky

Visual Basic obsahuje osu integrovaných prvků, která umožňuje najít všechny podřízené prvky se zadaným XName pro každý prvek ve zdrojové kolekci.

Tato metoda používá odložené spuštění.

Elements<T>(IEnumerable<T>)

Zdroj:
Extensions.cs
Zdroj:
Extensions.cs
Zdroj:
Extensions.cs
Zdroj:
Extensions.cs
Zdroj:
Extensions.cs

Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.

public:
generic <typename T>
 where T : System::Xml::Linq::XContainer[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Elements(System::Collections::Generic::IEnumerable<T> ^ source);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Elements<T>(this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XContainer;
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Elements<T>(this System.Collections.Generic.IEnumerable<T?> source) where T : System.Xml.Linq.XContainer;
static member Elements : seq<'T (requires 'T :> System.Xml.Linq.XContainer)> -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XContainer)
<Extension()>
Public Function Elements(Of T As XContainer) (source As IEnumerable(Of T)) As IEnumerable(Of XElement)

Parametry typu

T

Typ objektů, které jsou sourceomezeny na XContainer.

Parametry

source
IEnumerable<T>

Hodnota IEnumerable<T>XElement obsahující zdrojovou kolekci.

Návraty

Podřízený IEnumerable<T> prvek XElement každého prvku nebo dokumentu ve zdrojové kolekci.

Příklady

Následující příklad načte kolekci prvků s názvem elementu Child. Pak pomocí této metody osy načte všechny podřízené prvky kolekce.

XElement xmlTree = new XElement("Root",
    new XElement("Child",
        new XElement("GrandChild1", 1),
        new XElement("GrandChild2", 2)
    ),
    new XElement("Child",
        new XElement("GrandChild3", 3),
        new XElement("GrandChild4", 4)
    ),
    new XElement("Child",
        new XElement("GrandChild5", 5),
        new XElement("GrandChild6", 6)
    )
);

IEnumerable<XElement> allGrandChildren =
    from el in xmlTree.Elements("Child").Elements()
    select el;

foreach (XElement el in allGrandChildren)
    Console.WriteLine(el);
Dim xmlTree As XElement = _
     <Root>
          <Child>
              <GrandChild1>1</GrandChild1>
              <GrandChild2>2</GrandChild2>
          </Child>

          <Child>
              <GrandChild3>3</GrandChild3>
              <GrandChild4>4</GrandChild4>
          </Child>

          <Child>
              <GrandChild5>5</GrandChild5>
              <GrandChild6>6</GrandChild6>
          </Child>
      </Root>

Dim allGrandChildren = From el In xmlTree.<Child>.Elements _
                       Select el

For Each el As XElement In allGrandChildren
    Console.WriteLine(el)
Next

Tento příklad vytvoří následující výstup:

<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>

Následující příklad je stejný, ale v tomto případě je XML v oboru názvů. Další informace naleznete v tématu Práce s obory názvů XML.

XNamespace aw = "http://www.adventure-works.com";
XElement xmlTree = new XElement(aw + "Root",
    new XElement(aw + "Child",
        new XElement(aw + "GrandChild1", 1),
        new XElement(aw + "GrandChild2", 2)
    ),
    new XElement(aw + "Child",
        new XElement(aw + "GrandChild3", 3),
        new XElement(aw + "GrandChild4", 4)
    ),
    new XElement(aw + "Child",
        new XElement(aw + "GrandChild5", 5),
        new XElement(aw + "GrandChild6", 6)
    )
);

IEnumerable<XElement> allGrandChildren =
    from el in xmlTree.Elements(aw + "Child").Elements()
    select el;

foreach (XElement el in allGrandChildren)
    Console.WriteLine(el);
Imports <xmlns="http://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim xmlTree As XElement = _
             <Root>
                 <Child>
                     <GrandChild1>1</GrandChild1>
                     <GrandChild2>2</GrandChild2>
                 </Child>

                 <Child>
                     <GrandChild3>3</GrandChild3>
                     <GrandChild4>4</GrandChild4>
                 </Child>

                 <Child>
                     <GrandChild5>5</GrandChild5>
                     <GrandChild6>6</GrandChild6>
                 </Child>
             </Root>

        Dim allGrandChildren = From el In xmlTree.<Child>.Elements _
                               Select el

        For Each el As XElement In allGrandChildren
            Console.WriteLine(el)
        Next
    End Sub
End Module

Tento příklad vytvoří následující výstup:

<GrandChild1 xmlns="http://www.adventure-works.com">1</GrandChild1>
<GrandChild2 xmlns="http://www.adventure-works.com">2</GrandChild2>
<GrandChild3 xmlns="http://www.adventure-works.com">3</GrandChild3>
<GrandChild4 xmlns="http://www.adventure-works.com">4</GrandChild4>
<GrandChild5 xmlns="http://www.adventure-works.com">5</GrandChild5>
<GrandChild6 xmlns="http://www.adventure-works.com">6</GrandChild6>

Poznámky

I když Visual Basic obsahuje osu integrovaných prvků, která umožňuje najít všechny podřízené prvky se zadaným XName pro každý prvek ve zdrojové kolekci, neexistuje žádná osa integrovaných prvků, která umožňuje načíst kolekci všech podřízených prvků pro každý prvek ve zdrojové kolekci.

Tato metoda používá odložené spuštění.

Viz také

Platí pro

Elements<T>(IEnumerable<T>, XName)

Zdroj:
Extensions.cs
Zdroj:
Extensions.cs
Zdroj:
Extensions.cs
Zdroj:
Extensions.cs
Zdroj:
Extensions.cs

Vrátí filtrovanou kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající XName.

public:
generic <typename T>
 where T : System::Xml::Linq::XContainer[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Elements(System::Collections::Generic::IEnumerable<T> ^ source, System::Xml::Linq::XName ^ name);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Elements<T>(this System.Collections.Generic.IEnumerable<T> source, System.Xml.Linq.XName name) where T : System.Xml.Linq.XContainer;
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Elements<T>(this System.Collections.Generic.IEnumerable<T?> source, System.Xml.Linq.XName? name) where T : System.Xml.Linq.XContainer;
static member Elements : seq<'T (requires 'T :> System.Xml.Linq.XContainer)> * System.Xml.Linq.XName -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XContainer)
<Extension()>
Public Function Elements(Of T As XContainer) (source As IEnumerable(Of T), name As XName) As IEnumerable(Of XElement)

Parametry typu

T

Typ objektů, které jsou sourceomezeny na XContainer.

Parametry

source
IEnumerable<T>

Hodnota IEnumerable<T>XElement obsahující zdrojovou kolekci.

name
XName

To XName se má shodovat.

Návraty

Podřízený IEnumerable<T> prvek XElement každého prvku a dokumentu ve zdrojové kolekci. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající XName.

Příklady

Tato metoda rozšíření je užitečná, když chcete načíst všechny prvky se zadaným názvem v určité hloubkě. To je snadné, pokud je dokument velmi běžný, ale pokud je dokument nepravidelný, může být o něco obtížnější. V následujícím příkladu chceme načíst všechny aaa prvky, které jsou podřízenými Item prvky. Daný Item prvek může nebo nemusí obsahovat aaa prvek. To lze snadno provést pomocí této metody rozšíření následujícím způsobem:

XElement xmlTree = new XElement("Root",
    new XElement("Item",
        new XElement("aaa", 1),
        new XElement("bbb", 2)
    ),
    new XElement("Item",
        new XElement("ccc", 3),
        new XElement("aaa", 4)
    ),
    new XElement("Item",
        new XElement("ddd", 5),
        new XElement("eee", 6)
    )
);

IEnumerable<XElement> allGrandChildren =
    from el in xmlTree.Elements("Item").Elements("aaa")
    select el;

foreach (XElement el in allGrandChildren)
    Console.WriteLine(el);
Dim xmlTree As XElement = _
    <Root>
        <Item>
            <aaa>1</aaa>
            <bbb>2</bbb>
        </Item>

        <Item>
            <ccc>3</ccc>
            <aaa>4</aaa>
        </Item>

        <Item>
            <ddd>5</ddd>
            <eee>6</eee>
        </Item>
    </Root>

Dim allGrandChildren = From el In xmlTree.<Item>.<aaa> _
                       Select el

For Each el As XElement In allGrandChildren
    Console.WriteLine(el)
Next

Tento příklad vytvoří následující výstup:

<aaa>1</aaa>
<aaa>4</aaa>

Následující příklad je stejný, ale v tomto případě je XML v oboru názvů. Další informace naleznete v tématu Práce s obory názvů XML.

XNamespace aw = "http://www.adventure-works.com";
XElement xmlTree = new XElement(aw + "Root",
    new XElement(aw + "Item",
        new XElement(aw + "aaa", 1),
        new XElement(aw + "bbb", 2)
    ),
    new XElement(aw + "Item",
        new XElement(aw + "ccc", 3),
        new XElement(aw + "aaa", 4)
    ),
    new XElement(aw + "Item",
        new XElement(aw + "ddd", 5),
        new XElement(aw + "eee", 6)
    )
);

IEnumerable<XElement> allGrandChildren =
    from el in xmlTree.Elements(aw + "Item").Elements(aw + "aaa")
    select el;

foreach (XElement el in allGrandChildren)
    Console.WriteLine(el);
Imports <xmlns="http://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim xmlTree As XElement = _
            <Root>
                <Item>
                    <aaa>1</aaa>
                    <bbb>2</bbb>
                </Item>

                <Item>
                    <ccc>3</ccc>
                    <aaa>4</aaa>
                </Item>

                <Item>
                    <ddd>5</ddd>
                    <eee>6</eee>
                </Item>
            </Root>

        Dim allGrandChildren = From el In xmlTree.<Item>.<aaa> _
                               Select el

        For Each el As XElement In allGrandChildren
            Console.WriteLine(el)
        Next
    End Sub
End Module

Tento příklad vytvoří následující výstup:

<aaa xmlns="http://www.adventure-works.com">1</aaa>
<aaa xmlns="http://www.adventure-works.com">4</aaa>

Poznámky

Visual Basic uživatelé mohou pomocí osy integrovaných prvků načíst podřízené prvky každého prvku v kolekci.

Tato metoda používá odložené spuštění.

Viz také

Platí pro