次の方法で共有


XElement クラスの概要

XElement クラスは、LINQ to XML の基本的なクラスの 1 つです。 XML 要素を表します。 次の一覧は、このクラスの用途を示しています。

  • 要素を作成します。
  • 要素の内容を変更します。
  • 子要素を追加、変更、または削除します。
  • 要素に属性を追加します。
  • テキスト形式で要素の内容をシリアル化します。

XmlReaderXmlWriterXslCompiledTransformなど、System.Xml内の他のクラスと相互運用することもできます。

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

XML ツリーを構築する

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

  • コードで XML ツリーを構築できます。 詳細については、 XML ツリーを参照してください。
  • TextReader、テキスト ファイル、Web アドレス (URL) など、さまざまなソースから XML を解析できます。 詳細については、「 XML の解析」を参照してください。
  • XmlReaderを使用してツリーを設定できます。 詳細については、ReadFromを参照してください。
  • XmlWriterにコンテンツを書き込むことができるモジュールがある場合は、CreateWriter メソッドを使用してライターを作成し、ライターをモジュールに渡し、XmlWriterに書き込まれたコンテンツを使用して XML ツリーを設定できます。

次の例では、ツリーを作成します。 C# バージョンでは、入れ子になった要素の作成が使用されます。 Visual Basic でも同じ手法を使用できますが、この例では 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>

次の例に示すように、LINQ to XML クエリを使用して 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 to XML クエリは軸メソッドに対して動作し、XML ツリー内を移動して処理するための柔軟で強力な方法をいくつか提供します。

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

XML ツリーのクエリ

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

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

XML ツリーの変更

要素の内容や属性の変更など、さまざまな方法で要素を変更できます。 親から要素を削除することもできます。

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

こちらも参照ください