XElement, klasa — przegląd

Klasa XElement jest jedną z podstawowych klas w LINQ to XML. Reprezentuje element XML. Na poniższej liście przedstawiono, co można użyć dla tej klasy:

  • Utwórz elementy.
  • Zmień zawartość elementu.
  • Dodawanie, zmienianie lub usuwanie elementów podrzędnych.
  • Dodaj atrybuty do elementu.
  • Serializowanie zawartości elementu w postaci tekstowej.

Można również współpracować z innymi klasami w System.Xmlklasach , takich jak XmlReader, XmlWriteri 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ć CreateWriter metody do utworzenia modułu zapisywania, przekazać moduł zapisywania do modułu, a następnie użyć zawartości zapisanej w obiekcie , XmlWriter aby wypełnić drzewo XML.

Poniższy przykład tworzy drzewo. Wersja języka C# używa zagnieżdżonych 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 Fileelementu , , TextWriterlub 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 podrzędne, elementy podrzędne i elementy obiektu ancestor. 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.

Zobacz też