LINQ to XMLを使ってXMLのデータにアクセスする

文:Tony Patton(Special to TecRepublic) 編集校正:石橋啓一郎
2008-01-31 08:00:00
  • このエントリーをはてなブックマークに追加

 また、ユーザーインターフェースのコントロールや他のオブジェクトに、LINQクエリーの結果をデータソースとして利用することができる。次のコードでは、前に行ったクエリーの結果を使って、GridViewオブジェクトとのバインドを行っている。GridViewコントロールは、次のASP.NETページにある。



LINQ to XML


 そして、次のコードがこのGridViewコントロールを埋める。

public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
XDocument xmlDoc = XDocument.Load(@"c:sites.xml");
var q = from c in xmlDoc.Descendants("site")
where c.Attribute("technical").Value == "true"
select new {
name = c.Element("name").Value,
url = c.Element("url").Value
};
gvSites.DataSource = q;
gvSites.DataBind();

} } }

 このアプローチはXMLへのアクセスを簡単にし、RSSフィードからデータを簡単に取り出したり、WordML経由でWord文書を取り出したり、あるいはその他のあらゆるデータソースを表示のためにユーザーのインターフェースのコントロールにつないだりするなど、多くの可能性がある。

よりよい方法

 多くの開発者は、通常のADO.NETでLINQ to SQLを使ってバックエンドのデータベースを利用する方法を信奉しているが、LINQを使ってXMLを利用することに満足している開発者も多い。LINQ to XMLはXMLのデータを扱う上ではより単純で、多くの場合より直感的なアプローチであり、XmlDocumentオブジェクトを通じてDOM APIを使う場合よりも効率的でもある。また、select、where、fromなどを使ってデータを選択することで、XMLをデータベース的に使うアプローチももたらす。

 読者は.NETの新しいLINQの機能を試してみただろうか。もし試していれば、これをXMLの処理に使ってみようと思っただろうか。あなたの考えと経験をVisual Studio Developerコミュニティと共有して欲しい。

この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]