Sdílet prostřednictvím


Gewusst wie: Ermitteln eines Elements mit einem bestimmten untergeordneten Element

Aktualisiert: November 2007

In diesem Thema wird gezeigt, wie Sie nach einem bestimmten Element suchen können, das ein untergeordnetes Element mit einem bestimmten Wert besitzt.

Beispiel

Das Beispiel sucht nach dem Test-Element, das ein untergeordnetes CommandLine-Element mit dem Wert Examp2.EXE besitzt.

In diesem Beispiel wird das XML-Dokument in XML-Beispieldatei: Testkonfiguration (LINQ to XML) verwendet. XML-Beispieldatei: Testkonfiguration (LINQ to XML).

XElement root = XElement.Load("TestConfig.xml");
IEnumerable<XElement> tests =
    from el in root.Elements("Test")
    where (string)el.Element("CommandLine") == "Examp2.EXE"
    select el;
foreach (XElement el in tests)
    Console.WriteLine((string)el.Attribute("TestId"));
Dim root As XElement = XElement.Load("TestConfig.xml")
Dim tests As IEnumerable(Of XElement) = _
    From el In root.<Test> _
    Where el.<CommandLine>.Value = "Examp2.EXE" _
    Select el
For Each el as XElement In tests
    Console.WriteLine(el.@TestId)
Next

Dieser Code erzeugt die folgende Ausgabe:

0002
0006

Beachten Sie, dass von der Visual Basic-Version dieses Beispiels die Untergeordnete XML-Achseneigenschaft, die XML-Attribut Achseneigenschaft und die XML-Value-Eigenschaft verwendet werden.

Im folgenden Beispiel wird dieselbe Abfrage für XML in einem Namespace gezeigt. Weitere Informationen dazu finden Sie unter Arbeiten mit XML-Namespaces.

In diesem Beispiel wird das XML-Dokument in XML-Beispieldatei: Testkonfiguration in einem Namespace verwendet. XML-Beispieldatei: Testkonfiguration in einem Namespace.

XElement root = XElement.Load("TestConfigInNamespace.xml");
XNamespace ad = "http://www.adatum.com";
IEnumerable<XElement> tests =
    from el in root.Elements(ad + "Test")
    where (string)el.Element(ad + "CommandLine") == "Examp2.EXE"
    select el;
foreach (XElement el in tests)
    Console.WriteLine((string)el.Attribute("TestId"));
Imports <xmlns='http://www.adatum.com'>

Module Module1
    Sub Main()
        Dim root As XElement = XElement.Load("TestConfigInNamespace.xml")
        Dim tests As IEnumerable(Of XElement) = _
            From el In root.<Test> _
            Where el.<CommandLine>.Value = "Examp2.EXE" _
            Select el
        For Each el As XElement In tests
            Console.WriteLine(el.@TestId)
        Next
    End Sub
End Module

Dieser Code erzeugt die folgende Ausgabe:

0002
0006

Siehe auch

Konzepte

Einfache Abfragen (LINQ to XML)

Übersicht über Standardabfrageoperatoren

Projektionsvorgänge

Referenz

Attribute

Elements