Extensions.Elements Metódus

Definíció

A forrásgyűjteményben lévő összes elem és dokumentum gyermekelemeinek gyűjteményét adja vissza.

Túlterhelések

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

A forrásgyűjteményben lévő összes elem és dokumentum gyermekelemeinek gyűjteményét adja vissza.

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

A forrásgyűjtemény minden elemének és dokumentumának gyermekelemeinek szűrt gyűjteményét adja vissza. A gyűjtemény csak az egyező XName elemeket tartalmazza.

Megjegyzések

Visual Basic tartalmaz egy integrált elemtengelyt, amely lehetővé teszi az összes gyermekelem megkeresését egy megadott XName a forrásgyűjtemény minden eleméhez.

Ez a módszer késleltetett végrehajtást használ.

Elements<T>(IEnumerable<T>)

A forrásgyűjteményben lévő összes elem és dokumentum gyermekelemeinek gyűjteményét adja vissza.

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;
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ípusparaméterek

T

A beszűkített sourceXContainerobjektumok típusa.

Paraméterek

source
IEnumerable<T>

Az egyik IEnumerable<T> a XElement forrásgyűjteményt tartalmazza.

Válaszok

XElement A IEnumerable<T> forrásgyűjtemény minden elemének vagy dokumentumának gyermekeleme.

Példák

Az alábbi példa egy elemgyűjteményt kér le az elem nevével Child. Ezt a tengelymetódust használja a gyűjtemény összes gyermekelemének lekéréséhez.

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

Ez a példa a következő kimenetet hozza létre:

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

A következő példa ugyanaz, de ebben az esetben az XML névtérben van. További információ: XML-névterek használata.

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

Ez a példa a következő kimenetet hozza létre:

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

Megjegyzések

Bár Visual Basic tartalmaz egy integrált elemtengelyt, amely lehetővé teszi az összes gyermekelem megkeresését egy megadott XName a forrásgyűjtemény minden eleméhez, nincs olyan integrált elemtengely, amely lehetővé teszi a forrásgyűjtemény minden eleméhez tartozó összes gyermekelem gyűjteményének lekérését.

Ez a módszer késleltetett végrehajtást használ.

Lásd még

A következőre érvényes:

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

A forrásgyűjtemény minden elemének és dokumentumának gyermekelemeinek szűrt gyűjteményét adja vissza. A gyűjtemény csak az egyező XName elemeket tartalmazza.

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;
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ípusparaméterek

T

A beszűkített sourceXContainerobjektumok típusa.

Paraméterek

source
IEnumerable<T>

Az egyik IEnumerable<T> a XElement forrásgyűjteményt tartalmazza.

name
XName

A XName megfeleltetendő.

Válaszok

XElement A IEnumerable<T> forrásgyűjtemény minden elemének és dokumentumának gyermekeleme. A gyűjtemény csak az egyező XName elemeket tartalmazza.

Példák

Ez a bővítménymetódus akkor hasznos, ha egy megadott névvel rendelkező összes elemet egy adott mélységben szeretne lekérni. Ez egyszerű, ha a dokumentum nagyon szabályos, de ha a dokumentum szabálytalan, akkor egy kicsit nehezebb lehet. Az alábbi példában minden olyan elemet szeretnénk lekérni aaa , amely az elemek gyermekelemei Item . Egy adott Item elem tartalmazhat vagy nem tartalmazhat aaa elemet. Ez könnyen elvégezhető ezzel a bővítménymetódussal, az alábbiak szerint:

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

Ez a példa a következő kimenetet hozza létre:

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

A következő példa ugyanaz, de ebben az esetben az XML névtérben van. További információ: XML-névterek használata.

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

Ez a példa a következő kimenetet hozza létre:

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

Megjegyzések

Visual Basic felhasználók az integrált elemek tengelyével lekérhetik a gyűjtemény minden elemének gyermekelemét.

Ez a módszer késleltetett végrehajtást használ.

Lásd még

A következőre érvényes: