Extensions.Elements Yöntem

Tanım

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerinin bir koleksiyonunu döndürür.

Aşırı Yüklemeler

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

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerinin bir koleksiyonunu döndürür.

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

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerinin filtrelenmiş bir koleksiyonunu döndürür. Yalnızca eşleşen XName öğeler koleksiyona dahil edilir.

Açıklamalar

Visual Basic, kaynak koleksiyondaki her öğe için belirtilen XName sahip tüm alt öğeleri bulmanıza olanak tanıyan tümleşik bir öğe ekseni içerir.

Bu yöntem ertelenen yürütmeyi kullanır.

Elements<T>(IEnumerable<T>)

Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerinin bir koleksiyonunu döndürür.

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)

Tür Parametreleri

T

içindeki sourcenesnelerinin türü ile kısıtlanmış XContainer.

Parametreler

source
IEnumerable<T>

IEnumerable<T> Kaynak XElement koleksiyonu içeren bir öğe.

Döndürülenler

IEnumerable<T> Kaynak koleksiyondaki her öğenin veya belgenin alt öğelerinden biriXElement.

Örnekler

Aşağıdaki örnek, öğesi adına Childsahip bir öğe koleksiyonu alır. Daha sonra koleksiyonun tüm alt öğelerini almak için bu eksen yöntemini kullanır.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Aşağıda aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz. XML Ad Alanları ile çalışma.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Visual Basic, kaynak koleksiyondaki her öğe için belirtilen XName sahip tüm alt öğeleri bulmanıza olanak tanıyan tümleşik öğeler ekseni içerse de, kaynak koleksiyondaki her öğe için her alt öğenin koleksiyonunu almanıza olanak tanıyan tümleşik öğe ekseni yoktur.

Bu yöntem ertelenen yürütmeyi kullanır.

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerinin filtrelenmiş bir koleksiyonunu döndürür. Yalnızca eşleşen XName öğeler koleksiyona dahil edilir.

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)

Tür Parametreleri

T

içindeki sourcenesnelerinin türü ile kısıtlanmış XContainer.

Parametreler

source
IEnumerable<T>

IEnumerable<T> Kaynak XElement koleksiyonu içeren bir öğe.

name
XName

Eşleşmesi XName için.

Döndürülenler

IEnumerable<T> Kaynak koleksiyondaki her öğe ve belgenin alt öğelerinden biriXElement. Yalnızca eşleşen XName öğeler koleksiyona dahil edilir.

Örnekler

Bu uzantı yöntemi, belirli bir derinlikte belirtilen ada sahip tüm öğeleri almak istediğinizde kullanışlıdır. Belge çok düzenliyse bu kolaydır, ancak belge düzensizse, biraz daha zor olabilir. Aşağıdaki örnekte, öğelerin alt aaa öğeleri olan tüm Item öğeleri almak istiyoruz. Belirli Item bir öğe bir aaa öğe içerebilir veya içermeyebilir. Bu, aşağıdaki gibi bu uzantı yöntemi kullanılarak kolayca gerçekleştirilir:

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Aşağıda aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz. XML Ad Alanları ile çalışma.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Visual Basic kullanıcılar, bir koleksiyondaki her öğenin alt öğelerini almak için tümleşik öğeler eksenini kullanabilir.

Bu yöntem ertelenen yürütmeyi kullanır.

Ayrıca bkz.

Şunlara uygulanır