Extensions.Elements Yöntem

Tanım

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

Aşırı Yüklemeler

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ştirmesi XName olan öğeler koleksiyona dahil edilir.

Açıklamalar

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

Bu yöntem ertelenmiş yürütmeyi kullanır.

Elements<T>(IEnumerable<T>)

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 nesnelerinin sourcetürü ile kısıtlanır XContainer.

Parametreler

source
IEnumerable<T>

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

Döndürülenler

IEnumerable<XElement>

XElement Kaynak koleksiyondaki her öğenin veya belgenin alt öğelerinden biriIEnumerable<T>.

Örnekler

Aşağıdaki örnek, öğesi adına Childsahip bir öğe koleksiyonunu 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 da aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz . XML Ad Alanlarıyla Ç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 belirtilmiş XName olan tüm alt öğeleri bulmanıza olanak tanıyan tümleşik bir öğe 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 ertelenmiş yürütmeyi kullanır.

Ayrıca bkz.

Şunlara uygulanı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ştirmesi XName olan öğ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>

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

name
XName

Eşleşmesi XName için.

Döndürülenler

IEnumerable<XElement>

XElement Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerinden biriIEnumerable<T>. Yalnızca eşleştirmesi XName olan öğ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 Item öğesi olan tüm aaa öğ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 ertelenmiş yürütmeyi kullanır.

Ayrıca bkz.

Şunlara uygulanır