Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Extensions.Descendants<T>(IEnumerable<T>, XName)

 

Restituisce una raccolta filtrata di elementi che contiene gli elementi discendenti di ciascun elemento e documento nella raccolta di origine.Solo gli elementi che hanno un XName corrispondente vengono inclusi nella raccolta.

Spazio dei nomi:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public static IEnumerable<XElement> Descendants<T>(
	this IEnumerable<T> source,
	XName name
)
where T : XContainer

Parametri

source

IEnumerable<T> di XContainer che contiene la raccolta di origine.

name

Oggetto XName di cui verificare la corrispondenza.

Valore restituito

Type: System.Collections.Generic.IEnumerable<XElement>

IEnumerable<T> di XElement che contiene gli elementi discendenti di ciascun elemento e documento nella raccolta di origine.Solo gli elementi che hanno un XName corrispondente vengono inclusi nella raccolta.

Parametri di tipo

T

Tipo di oggetti in source vincolati a XContainer.

Gli utenti di Visual Basic possono utilizzare Language-Integrated Axes in Visual Basic (LINQ to XML) anziché utilizzare in modo esplicito il metodo axis.

Questo metodo utilizza l'esecuzione posticipata.

Nell'esempio seguente viene recuperato un insieme di due elementi e viene recuperato un insieme di tutti discendenti dei due elementi con il nome dell'elemento specificato.

XElement xmlTree = XElement.Parse(
@"<Root>
    <Para>
        <t>This is some text </t>
        <b>
            <t>where</t>
        </b>
        <t> all of the text nodes must be concatenated. </t>
    </Para>
    <Para>
        <t>This is a second sentence.</t>
    </Para>
</Root>");

string str =
    (from el in xmlTree.Elements("Para").Descendants("t")
    select (string)el)
    .Aggregate(new StringBuilder(),
        (sb, i) => sb.Append(i),
        sb => sb.ToString());

Console.WriteLine(str);

Questo esempio produce il seguente output:

This is some text where all of the text nodes must be concatenated. This is a second sentence.

L'esempio seguente è il medesimo, ma in questo caso il codice XML è in uno spazio dei nomi. Per ulteriori informazioni, vedere 使用 XML 命名空間.

XNamespace aw = "http://www.adventure-works.com";
XElement xmlTree = XElement.Parse(
@"<Root xmlns='http://www.adventure-works.com'>
    <Para>
        <t>This is some text </t>
        <b>
            <t>where</t>
        </b>
        <t> all of the text nodes must be concatenated. </t>
    </Para>
    <Para>
        <t>This is a second sentence.</t>
    </Para>
</Root>");

string str =
    (from el in xmlTree.Elements(aw + "Para").Descendants(aw + "t")
     select (string)el)
    .Aggregate(new StringBuilder(),
        (sb, i) => sb.Append(i),
        sb => sb.ToString());

Console.WriteLine(str);

Questo esempio produce il seguente output:

This is some text where all of the text nodes must be concatenated. This is a second sentence.

Universal Windows Platform
Disponibile da 4.5
.NET Framework
Disponibile da 3.5
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: