ぽざうねっと

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

ニュース

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

書庫

日記カテゴリ

Accessory

Community

Private

<?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>
コレに対して、key の値が 20 台のものを LINQ で取得してみましょう。
XDocument doc = XDocument.Load(@"D:\temp\test.xml");
XElement documentElement = (XElement)doc.FirstNode;
IEnumerable<XElement> elements =
    from item in documentElement.Elements("item")
    let keyValue = int.Parse(item.Attribute("key").Value)
    where (20 < keyValue) && (keyValue < 30)
    select item;
同じことを XQuery でやってみます。
<hoge>
{
    FOR $item IN document("test.xml")//item
    LET $key := $item/@key
    WHERE $key > 20 AND $key < 30
    RETURN $item
}
</hoge>
そっくりだと思いません?
for と from、return と select が異なりますが、かなり似てます。
これはうれしいですね。

from より for のほうがよかったなぁ。from in ってなんか違和感があるわぁ

# XQuery については、そのうち(XML Schema が終わったらかな)この blog でも書いていくつもりです
投稿日時 : 2007年4月22日 11:01

コメント

# LLaBMGoDipSTNxADp 2011/12/22 22:04 http://www.discreetpharmacist.com/ita/index.asp
Every time I come back here again and don`t get disappointed..!

Post Feedback

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