Ü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:
XML-Strukturen in Code konstruieren (siehe Erstellen von XML-Strukturen)
XML aus verschiedenen Quellen, wie TextReader, Textdateien oder Webadressen (URLs), analysieren (siehe Analysieren von XML-Dokumenten)
einen XmlReader verwenden, um die Struktur aufzufüllen (siehe ReadFrom)
mit der CreateWriter-Methode einen Writer erstellen, den Writer an das Modul übergeben und dann den in den XmlWriter geschriebenen Inhalt zum Auffüllen der XML-Struktur verwenden, sofern ein Modul vorhanden ist, das Inhalt in einen XmlWriter schreiben kann
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).