XElement — Omówienie klasyC#()XElement Class Overview (C#)

Klasa jest jedną z podstawowych klas w LINQ do XMLLINQ to XML. XElementThe XElement class is one of the fundamental classes in LINQ do XMLLINQ to XML. Reprezentuje element XML.It represents an XML element. Możesz użyć tej klasy do tworzenia elementów; Zmień zawartość elementu; Dodawanie, zmienianie lub usuwanie elementów podrzędnych; Dodaj atrybuty do elementu; lub serializować zawartości elementu w postaci tekstowej.You can use this class to create elements; change the content of the element; add, change, or delete child elements; add attributes to an element; or serialize the contents of an element in text form. Możesz również współpracować z innymi klasami w System.Xml, takich jak XmlReader, XmlWriter, i XslCompiledTransform.You can also interoperate with other classes in System.Xml, such as XmlReader, XmlWriter, and XslCompiledTransform.

W tym temacie opisano funkcje udostępniane przez XElement klasę.This topic describes the functionality provided by the XElement class.

Konstruowanie drzew XMLConstructing XML Trees

Drzewa XML można konstruować na różne sposoby, w tym następujące:You can construct XML trees in a variety of ways, including the following:

  • Drzewo XML można skonstruować w kodzie.You can construct an XML tree in code. Aby uzyskać więcej informacji, zobacz Tworzenie drzew XMLC#().For more information, see Creating XML Trees (C#).

  • Można analizować XML z różnych źródeł, w tym TextReaderplików tekstowych lub adresów sieci Web (URL).You can parse XML from various sources, including a TextReader, text files, or a Web address (URL). Aby uzyskać więcej informacji, zobacz Analizowanie XMLC#().For more information, see Parsing XML (C#).

  • Aby wypełnić drzewo, XmlReader można użyć elementu.You can use an XmlReader to populate the tree. Aby uzyskać więcej informacji, zobacz ReadFrom.For more information, see ReadFrom.

  • Jeśli masz moduł, który może zapisywać zawartość w XmlWriter CreateWriter programie, możesz użyć metody do utworzenia składnika zapisywania, przekazania składnika zapisywania do modułu, a następnie użyć zawartości zapisanej XmlWriter w programie w celu wypełnienia drzewa XML.If you have a module that can write content to an XmlWriter, you can use the CreateWriter method to create a writer, pass the writer to the module, and then use the content that is written to the XmlWriter to populate the XML tree.

Jednak najbardziej typowym sposobem tworzenia drzewa XML jest:However, the most common way to create an XML tree is as follows:

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")  
            )  
        )  
    );  

Inna bardzo często stosowana technika tworzenia drzewa XML obejmuje użycie wyników LINQLINQ zapytania do wypełnienia drzewa XML, jak pokazano w następującym przykładzie:Another very common technique for creating an XML tree involves using the results of a LINQLINQ query to populate an XML tree, as shown in the following example:

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);  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Serializowanie drzew XMLSerializing XML Trees

Można serializować drzewo XML do File, a TextWriterlub XmlWriter.You can serialize the XML tree to a File, a TextWriter, or an XmlWriter.

Aby uzyskać więcej informacji, zobacz Serializowanie drzew XMLC#().For more information, see Serializing XML Trees (C#).

Pobieranie danych XML za pomocą metod osiRetrieving XML Data via Axis Methods

Możesz użyć metod osi do pobierania atrybutów, elementów podrzędnych, elementów podrzędnych i elementów nadrzędnych.You can use axis methods to retrieve attributes, child elements, descendant elements, and ancestor elements. LINQLINQzapytania działają na podstawie metod osi i zapewniają kilka elastycznych i wydajnych sposobów nawigowania w drzewie XML i przetwarzania ich.queries operate on axis methods, and provide several flexible and powerful ways to navigate through and process an XML tree.

Aby uzyskać więcej informacji, zobacz LINQ to XML osiC#().For more information, see LINQ to XML Axes (C#).

Tworzenie zapytań dotyczących drzew XMLQuerying XML Trees

Można napisać LINQLINQ zapytania wyodrębniające dane z drzewa XML.You can write LINQLINQ queries that extract data from an XML tree.

Aby uzyskać więcej informacji, zobacz temat Tworzenie zapytań dotyczącychC#drzew XML ().For more information, see Querying XML Trees (C#).

Modyfikowanie drzew XMLModifying XML Trees

Można zmodyfikować element na różne sposoby, w tym zmieniać jego zawartość lub atrybuty.You can modify an element in a variety of ways, including changing its content or attributes. Można również usunąć element z jego elementu nadrzędnego.You can also remove an element from its parent.

Aby uzyskać więcej informacji, zobacz Modyfikowanie drzew XML (LINQ to XML)C#().For more information, see Modifying XML Trees (LINQ to XML) (C#).

Zobacz takżeSee also