次の方法で共有


XElement クラスの概要

更新 : November 2007

XElement クラスは、LINQ to XML の基礎クラスの 1 つです。これは XML 要素を表します。このクラスを使用すると、要素の作成、要素のコンテンツの変更、子要素の追加、変更、削除、要素への属性の追加、および要素のコンテンツのテキスト形式へのシリアル化を行うことができます。XmlReaderXmlWriterXslCompiledTransform などの、System.Xml の他のクラスと相互運用することもできます。

XElement の機能

このトピックでは、XElement クラスによって提供される機能について説明します。

XML ツリーの構築

次のようなさまざまな方法で XML ツリーを構築できます。

  • コードで XML ツリーを構築できます。詳細については、「XML ツリーの作成」を参照してください。

  • TextReader、テキスト ファイル、Web アドレス (URL) など、さまざまなソースから XML を解析できます。詳細については、「XML の解析」を参照してください。

  • XmlReader を使用してツリーを設定できます。詳細については、「ReadFrom」を参照してください。

  • XmlWriter にコンテンツを書き込むことができるモジュールがある場合は、CreateWriter メソッドを使用してライタを作成し、このライタをモジュールに渡し、XmlWriter に書き込まれたコンテンツを使用して XML ツリーを設定できます。

しかし、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>

XML ツリーを作成するもう 1 つの一般的な方法では、次の例に示すように、LINQ クエリの結果を使用して XML ツリーを設定します。

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)

この例では次の出力が生成されます。

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

XML ツリーのシリアル化

XML ツリーは、FileTextWriter、または XmlWriter にシリアル化できます。

詳細については、「XML ツリーのシリアル化」を参照してください。

軸メソッドによる XML データの取得

軸メソッドを使用すると、属性、子要素、子孫要素、および祖先要素を取得できます。LINQ クエリは、軸メソッドに対して機能し、XML ツリーを操作して処理するための柔軟で強力な機能を複数備えています。

詳細については、「LINQ to XML 軸」を参照してください。

XML ツリーのクエリ

XML ツリーからデータを抽出する LINQ クエリを記述できます。

詳細については、「XML ツリーのクエリ」を参照してください。

XML ツリーの変更

要素を変更するには、そのコンテンツや属性を変更するなど、さまざまな方法があります。要素を親から削除することもできます。

詳細については、「XML ツリーの変更 (LINQ to XML)」を参照してください。

参照

概念

LINQ to XML プログラミングの概要