Översikt över XElement-klassen
Klassen XElement är en av de grundläggande klasserna i LINQ till XML. Det representerar ett XML-element. I följande lista visas vad du kan använda den här klassen för:
- Skapa element.
- Ändra innehållet i elementet.
- Lägg till, ändra eller ta bort underordnade element.
- Lägg till attribut i ett element.
- Serialisera innehållet i ett element i textformat.
Du kan också samverka med andra klasser i System.Xml, till exempel XmlReader, XmlWriteroch XslCompiledTransform.
I den här artikeln beskrivs de funktioner som tillhandahålls av XElement klassen.
Skapa XML-träd
Du kan konstruera XML-träd på olika sätt, inklusive följande:
- Du kan skapa ett XML-träd i kod. Mer information finns i XML-träd.
- Du kan parsa XML från olika källor, till exempel en TextReader, textfiler eller en webbadress (URL). Mer information finns i Parsa XML.
- Du kan använda en XmlReader för att fylla i trädet. Mer information finns i ReadFrom.
- Om du har en modul som kan skriva innehåll till en XmlWriterkan du använda CreateWriter metoden för att skapa en skrivare, skicka skrivaren till modulen och sedan använda det innehåll som skrivs till XmlWriter för att fylla i XML-trädet.
I följande exempel skapas ett träd. C#-versionen använder kapslade elementskapanden. Du kan använda samma teknik i Visual Basic, men i det här exemplet används XML-literaler.
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>
Du kan också använda en LINQ till XML-fråga för att fylla i ett XML-träd, som du ser i följande exempel:
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)
Det här exemplet genererar följande utdata:
<Root>
<Child>1</Child>
<Child>2</Child>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Serialisera XML-träd
Du kan serialisera XML-trädet till en File, en TextWritereller en XmlWriter.
Mer information finns i Serialisera XML-träd.
Hämta XML-data via axelmetoder
Du kan använda axelmetoder för att hämta attribut, underordnade element, underordnade element och överordnade element. LINQ till XML-frågor fungerar på axelmetoder och tillhandahåller flera flexibla och kraftfulla sätt att navigera genom och bearbeta ett XML-träd.
Mer information finns i ÖVERSIKT över LINQ till XML-axlar.
Fråga XML-träd
Du kan skriva LINQ till XML-frågor som extraherar data från ett XML-träd.
Mer information finns i Översikt över FRÅGA XML-träd.
Ändra XML-träd
Du kan ändra ett element på olika sätt, inklusive att ändra dess innehåll eller attribut. Du kan också ta bort ett element från dess överordnade element.
Mer information finns i Ändra XML-träd.