Sdílet prostřednictvím


Übersicht über die 'XElement'-Klasse

Aktualisiert: November 2007

Die XElement-Klasse ist eine der wichtigsten Klassen in LINQ to XML. Sie stellt ein XML-Element dar. Diese Klasse kann zum Erstellen von Elementen, zum Ändern des Inhalts des Elements, zum Hinzufügen, Ändern oder Löschen untergeordneter Elemente, zum Hinzufügen von Attributen zu einem Element oder zum Serialisieren des Inhalts eines Elements in Textform verwendet werden. Die Klasse kann auch mit anderen Klassen in System.Xml zusammenarbeiten, wie XmlReader, XmlWriter und XslCompiledTransform.

"XElement"-Funktionalität

In diesem Thema wird die von der XElement-Klasse bereitgestellte Funktionalität beschrieben.

Konstruieren von XML-Strukturen

Für das Konstruieren von XML-Strukturen stehen Ihnen verschiedene Möglichkeiten zur Verfügung. So können Sie z. B. Folgendes tun:

Die verbreitetste Variante, eine XML-Struktur zu erstellen, sieht aber wie folgt aus:

XElement contacts =
    new XElement("Contacts",
        new XElement("Contact",
            new XElement("Name", "Patrick Hines"), 
            new XElement("Phone", "206-555-0144"),
            new XElement("Address",
                new XElement("Street1", "123 Main St"),
                new XElement("City", "Mercer Island"),
                new XElement("State", "WA"),
                new XElement("Postal", "68042")
            )
        )
    );
Dim contacts As XElement = _
    <Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone>206-555-0144</Phone>
            <Address>
                <Street1>123 Main St</Street1>
                <City>Mercer Island</City>
                <State>WA</State>
                <Postal>68042</Postal>
            </Address>
        </Contact>
    </Contacts>

Bei einer weiteren, häufig verwendeten Technik zum Erstellen einer XML-Struktur wird die XML-Struktur anhand der Ergebnisse einer LINQ-Abfrage aufgefüllt, wie dies im folgenden Beispiel dargestellt ist:

XElement srcTree = new XElement("Root",
    new XElement("Element", 1),
    new XElement("Element", 2),
    new XElement("Element", 3),
    new XElement("Element", 4),
    new XElement("Element", 5)
);
XElement xmlTree = new XElement("Root",
    new XElement("Child", 1),
    new XElement("Child", 2),
    from el in srcTree.Elements()
    where (int)el > 2
    select el
);
Console.WriteLine(xmlTree);
Dim srcTree As XElement = _
    <Root>
        <Element>1</Element>
        <Element>2</Element>
        <Element>3</Element>
        <Element>4</Element>
        <Element>5</Element>
    </Root>
Dim xmlTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <%= From el In srcTree.Elements() _
            Where el.Value > 2 _
            Select el %>
    </Root>
Console.WriteLine(xmlTree)

Dieses Beispiel führt zur folgenden Ausgabe:

<Root>
  <Child>1</Child>
  <Child>2</Child>
  <Element>3</Element>
  <Element>4</Element>
  <Element>5</Element>
</Root>

Serialisieren von XML-Strukturen

Sie können die XML-Struktur in eine File, in einen TextWriter oder in einen XmlWriter serialisieren.

Weitere Informationen dazu finden Sie unter Serialisieren von XML-Strukturen.

Abrufen von XML-Daten über Achsenmethoden

Mit Achsenmethoden können Sie Attribute, untergeordnete Elemente, Nachfolgerelemente und Vorgängerelemente abrufen. LINQ-Abfragen verwenden Achsenmethoden und bieten verschiedene flexible und leistungsstarke Möglichkeiten zum Navigieren durch eine XML-Struktur und zu deren Verarbeitung.

Weitere Informationen dazu finden Sie unter LINQ to XML-Achsen.

Abfragen von XML-Strukturen

Sie können LINQ-Abfragen schreiben, die Daten aus einer XML-Struktur abrufen.

Weitere Informationen dazu finden Sie unter Abfragen von XML-Strukturen.

Ändern von XML-Strukturen

Sie können ein Element auf unterschiedliche Weise ändern, z. B. durch Ändern seines Inhalts oder seiner Attribute. Sie können ein Element auch aus seinem übergeordneten Element entfernen.

Weitere Informationen dazu finden Sie unter Ändern von XML-Strukturen (LINQ to XML).

Siehe auch

Konzepte

Übersicht über die LINQ to XML-Programmierung