ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  396  : 記事  0  : コメント  1030  : トラックバック  66

ニュース

さて、今年の秋は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

Orcas やってきましたね、Orcas。
まず MSDN 見てるとと~~~~~~~~っても気になる名前空間がありました。

System.Xml.Linq

XML での LINQ 用の名前空間みたいですね。
というわけで、さっそく XML での LINQ を試してみました。
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <item key="11">1-1</item>
    <item key="12">1-2</item>
    <item key="13">1-3</item>
    <item key="21">2-1</item>
    <item key="22">2-2</item>
    <item key="23">2-3</item>
    <item key="31">3-1</item>
    <item key="32">3-2</item>
    <item key="33">3-3</item>
</root>
こんな XML に対して、key 属性が 1 で終わる要素を取り出すにはこんな感じ。
XName key = "key";
XDocument doc = XDocument.Load(@"D:\temp\test.xml");
XElement documentElement = (XElement)doc.FirstNode;
IEnumerable<XElement> elements =
    from child in documentElement.Elements("item")
    where item.Attribute(key).Value.EndsWith("1")
    select item;
foreach (XElement elm in elements) {
    Console.WriteLine(elm);
}
Elements っつーどうみてもプロパティとしか思えない名前のメソッドがありまして、これが引数に XName というクラスのインスタンスを引数にとります。
この XName はコンストラクタが定義されてなくて、どうやってインスタンスを作るのかに非常に迷いました。
なんのことはない string でいいんですよ。
実際にサンプルでは Attribute メソッドにおける XName インスタンスは XName = "key" としてるでしょ。
ほかにも色々楽しめるので XML における LINQ のさわり部分を短期集中連載してみます。(XML Schema どーなった!!??)
投稿日時 : 2007年4月22日 9:10

コメント

# re: LINQ in XML 2007/04/23 11:53 とっちゃん
XLinq と呼ばれる奴ですね(通称?)
素の Linq は、.NET のオブジェクトを扱うためのものらしいです。
DLinq は、DB(SQL Server専用?)用で、XLinq が XML 用。

MVP Summit でもいろいろ出てたらしいですが、おいらは話を聞いてないので、人づてにいくつか聞いた程度ですがw
#情報がリフレッシュできていない...w

ま、おいらの場合、その辺のネタは、キーワード押さえておけばOKな部分がおおきいのでw
#<strike>(よくわからんけど)</strike>こんなのは?と「キーワード」を出すのがウォッチャーの仕事だし<いいのか?それで!


# re: LINQ in XML 2007/04/24 0:51 THREE-ONE
SQL のようなもんがソースにかけますよーってのは知ってたのですが(DLinkですな)、XML についてはよく調べてませんでした。
LINQ自体は奥が深そうなんで、しばらく放置ですw
外堀からじっくりじっくり

Post Feedback

タイトル
名前
Url:
コメント: