Linq ファイルの読み込み書き込み

C# Linq Xmlファイルの読み込み方法 Root.Elementsを使用して、Linqも使用できる型にしよう。Load、Root.Elements

今回のテーマ

こんにちは、かっぱちゃんです。

今回はXmlファイルを読み込んでLinqで好きな形にしていこう!

という趣旨のブログを書いていきます。

C#では、Xmlファイルの扱いが比較的充実しているので、何回か分けて記事を書いていこうと思っています。

私もXmlファイルの扱い方は結構忘れがちなので、一緒に勉強していくつもりで記事を書いていきます!!

それでは、ソースコードを書いていきます!!

KappaChan
今回はXmlファイルの扱い方かっぱ!!

今回使用するXml

今回読み込むファイルは下記のXmlファイルです。名前は「Robot.xml」で、プログラムと同様のカレントディレクトリに置いてます。

Xmlファイルの読み込み

早速、Xmlファイルを読み込んでみましょう。読み込むためのメソッドはLoadメソッドです。

下記のソースコードを見てください。

 出力結果
<robotlists>
<robotlist>
<name>Rockman</name>"
<maker>Dr_Light</maker>"
<color>Blue</color>"
</robotlist>
<robotlist>
以下略・・・・

Robol.xmlファイル内の全ての内容を読み込めました。Loadの戻り値はXDocument型で内容を保持できます。

要素の取得

続けて、要素の取得を行います。XDocumentオブジェクトを生成したら、Root.Elementsメソッドで、

ルート直下にある要素を全て取得します。

戻り値はIEnumerable<XElement>型なので、Linqなど自由に扱うことが出来ます。

今回はnameの要素を出力するソースコードにしてみました。

 出力結果
Rockman
Rockchan
Fireman
Iceman
Airman

想定通りに「name」の要素のみ取得できました。

foreachでは、XElement型を一つずつ取り出し、

Elementメソッドを使用することで、「name」の要素を取得しています。

「name」実際の文字列の要素を得るにはValueプロパティを使用しましょう。

Linqを組み合わせた例

最後にRoot.Elements()で受け取った戻り値に対して、Linqを使って行く例を見てみましょう。

今回のソースコードでは、Selectメソッドで名前を抜き出し、OrderByメソッドで並び替えを行いました。

 出力結果
Airman
Fireman
Iceman
Rockchan
Rockman

Linqのメソッドについては下記の記事を参考にしてください。

こちらもCHECK

C# Linqの使い方。Distinct、OrderBy、OrderByDescendingメソッドを解説。

今回のテーマContents1 今回のテーマ2 Distinct、OrderBy、OrderByDescendingについて2.1 Distinct2.2 OrderBy2.3 OrderByDesc ...

続きを見る

こちらもCHECK

C# Linqの使い方。クラスを定義してSelectメソッドを使おう。

今回のテーマContents1 今回のテーマ2 今回使うクラスについて3 Linqメソッドの解説の流れ4 Selectの使い方5 複数個の属性を抜き出す方法6 まとめ こんばんは、かっぱちゃんです。 ...

続きを見る

Linqを自由に使えるので、使いたい値にするのも簡単ですね。

KappaChan
戻り値がLinqを使用できる型なので、値の整形が簡単かっぱ!!

まとめ

今回はxmlの読み込みについて解説していきました。今回使用したメソッドは下記です。

今回使用したメソッド

  • Load
  • Root.Elements
  • Element

Root.Elementsメソッドによって、Linqが使い放題の型にしてくれるので、

Xmlファイルの扱いが各段に楽になりました。

Xmlファイルに関しては、他にも沢山記事を書いてくので、楽しみにしててください。

それでは、最後まで見て頂きありがとうございました。

Xmlの読み込みに関して、新しい記事を書きました。

こちらもご覧ください。

こちらもCHECK

C# Linq Xmlファイルの要素の追加、削除、修正方法 Add、Remove、ReplaceWithメソッドで修正した後にSaveメソッドで保存する方法を解説します。

今回のテーマContents1 今回のテーマ1.1 今回対象となるXmlファイル1.2 要素の追加方法1.3 要素の削除方法1.4 要素を置き換える1.5 Xmlファイルの保存1.6 まとめ 今回記事 ...

続きを見る

-Linq, ファイルの読み込み書き込み

X