Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa XElement jest jedną z podstawowych klas w LINQ to XML. Reprezentuje element XML. Poniższa lista pokazuje, do czego można używać tej klasy:
- Utwórz elementy.
- Zmień zawartość elementu.
- Dodaj, zmień lub usuń elementy podrzędne.
- Dodaj atrybuty do elementu.
- Serializowanie zawartości elementu w postaci tekstowej.
Można również współpracować z innymi klasami w System.Xml, takimi jak XmlReader, XmlWriter i XslCompiledTransform.
W tym artykule opisano funkcje udostępniane przez klasę XElement .
Konstruowanie drzew XML
Drzewa XML można konstruować na różne sposoby, w tym następujące:
- Drzewo XML można skonstruować w kodzie. Aby uzyskać więcej informacji, zobacz Drzewa XML.
- Kod XML można analizować z różnych źródeł, w tym plików tekstowych TextReaderlub adresu internetowego (URL). Aby uzyskać więcej informacji, zobacz Analizowanie kodu XML.
- Możesz użyć elementu XmlReader , aby wypełnić drzewo. Aby uzyskać więcej informacji, zobacz ReadFrom.
- Jeśli masz moduł, który może zapisywać zawartość w obiekcie XmlWriter, możesz użyć metody CreateWriter do utworzenia obiektu zapisującego, przekazać obiekt zapisujący do modułu, a następnie użyć zawartości zapisanej w obiekcie XmlWriter do wypełnienia drzewa XML.
Poniższy przykład tworzy drzewo. Wersja języka C# używa zagnieżdżonego tworzenia elementów. Możesz użyć tej samej techniki w języku Visual Basic, ale w tym przykładzie użyto literałów XML.
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>
Możesz również użyć zapytania LINQ to XML, aby wypełnić drzewo XML, jak pokazano w poniższym przykładzie:
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)
Ten przykład generuje następujące wyniki:
<Root>
<Child>1</Child>
<Child>2</Child>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Serializowanie drzew XML
Drzewo XML można serializować do File, TextWriter lub XmlWriter.
Aby uzyskać więcej informacji, zobacz Serializowanie drzew XML.
Pobieranie danych XML za pomocą metod osi
Za pomocą metod osi można pobierać atrybuty, elementy podrzędne, elementy potomne i elementy nadrzędne. Zapytania LINQ to XML działają na metodach osi i zapewniają kilka elastycznych i zaawansowanych sposobów nawigowania po drzewie XML i przetwarzaniu go.
Aby uzyskać więcej informacji, zobacz LINQ to XML axes overview (Omówienie osi LINQ to XML).
Tworzenie zapytań dotyczących drzew XML
Możesz napisać zapytania LINQ to XML, które wyodrębniają dane z drzewa XML.
Aby uzyskać więcej informacji, zobacz Query XML trees overview (Omówienie drzew XML zapytań).
Modyfikowanie drzew XML
Element można modyfikować na różne sposoby, w tym zmieniać jego zawartość lub atrybuty. Element można również usunąć z elementu nadrzędnego.
Aby uzyskać więcej informacji, zobacz Modyfikowanie drzew XML.