XElement クラスの概要 (C#)XElement Class Overview (C#)

XElement クラスは、LINQ to XMLLINQ to XML の基礎クラスの 1 つです。The XElement class is one of the fundamental classes in LINQ to XMLLINQ to XML. これは XML 要素を表します。It represents an XML element. このクラスを使用すると、要素の作成、要素のコンテンツの変更、子要素の追加、変更、削除、要素への属性の追加、および要素のコンテンツのテキスト形式へのシリアル化を行うことができます。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. System.XmlXmlReaderXmlWriter などの、XslCompiledTransform の他のクラスと相互運用することもできます。You can also interoperate with other classes in System.Xml, such as XmlReader, XmlWriter, and XslCompiledTransform.

このトピックでは、XElement クラスによって提供される機能について説明します。This topic describes the functionality provided by the XElement class.

XML ツリーの構築Constructing XML Trees

次のようなさまざまな方法で XML ツリーを構築できます。You can construct XML trees in a variety of ways, including the following:

  • コードで XML ツリーを構築できます。You can construct an XML tree in code. 詳しくは、「XML ツリーの作成 (C#)」をご覧ください。For more information, see Creating XML Trees (C#).

  • TextReader、テキスト ファイル、Web アドレス (URL) など、さまざまなソースから XML を解析できます。You can parse XML from various sources, including a TextReader, text files, or a Web address (URL). 詳しくは、「XML の解析 (C#)」をご覧ください。For more information, see Parsing XML (C#).

  • XmlReader を使用してツリーを設定できます。You can use an XmlReader to populate the tree. 詳細については、「ReadFrom」を参照してください。For more information, see ReadFrom.

  • XmlWriter にコンテンツを書き込むことができるモジュールがある場合は、CreateWriter メソッドを使用してライターを作成し、このライターをモジュールに渡し、XmlWriter に書き込まれたコンテンツを使用して 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.

しかし、XML ツリーを作成する最も一般的な方法は次のとおりです。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")  
            )  
        )  
    );  

XML ツリーを作成するもう 1 つの一般的な方法では、次の例に示すように、LINQLINQ クエリの結果を使用して XML ツリーを設定します。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);  

この例を実行すると、次の出力が生成されます。This example produces the following output:

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

XML ツリーのシリアル化Serializing XML Trees

XML ツリーは、FileTextWriter、または XmlWriter にシリアル化できます。You can serialize the XML tree to a File, a TextWriter, or an XmlWriter.

詳しくは、「XML ツリーのシリアル化 (C#)」をご覧ください。For more information, see Serializing XML Trees (C#).

軸メソッドによる XML データの取得Retrieving XML Data via Axis Methods

軸メソッドを使用すると、属性、子要素、子孫要素、および祖先要素を取得できます。You can use axis methods to retrieve attributes, child elements, descendant elements, and ancestor elements. LINQLINQ クエリは、軸メソッドに対して機能し、XML ツリーを操作して処理するための、柔軟で強力な複数の機能を備えています。queries operate on axis methods, and provide several flexible and powerful ways to navigate through and process an XML tree.

詳しくは、「LINQ to XML 軸 (C#)」をご覧ください。For more information, see LINQ to XML Axes (C#).

XML ツリーのクエリQuerying XML Trees

XML ツリーからデータを抽出する LINQLINQ クエリを記述できます。You can write LINQLINQ queries that extract data from an XML tree.

詳しくは、「XML ツリーのクエリ (C#)」をご覧ください。For more information, see Querying XML Trees (C#).

XML ツリーの変更Modifying XML Trees

要素を変更するには、そのコンテンツや属性を変更するなど、さまざまな方法があります。You can modify an element in a variety of ways, including changing its content or attributes. 要素を親から削除することもできます。You can also remove an element from its parent.

詳しくは、「XML ツリーの変更 (LINQ to XML) (C#)」をご覧ください。For more information, see Modifying XML Trees (LINQ to XML) (C#).

関連項目See also