*Yahoo!検索Webサービス ウェブ検索のXmlDocumentクラスでXMLデータを解析するサンプルコード(C#) [#zb19a5cc] Yahoo!検索Webサービスのウェブ検索機能を使って検索を行うサンプルです。[[こちらのサンプル>../../C#]]と違い、xsd.exeを使わずに、XmlDocumentクラスでXMLデータを解析しています。 #code(csharp){{ <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Button1_Click(object sender, EventArgs e) { //URLを構築する string requestUrl = "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch"; //アプリケーションIDを指定(必ず指定すること) requestUrl += "?appid=XXXXX"; //検索クエリー。UTF-8エンコードする。 requestUrl += "&query=" + Server.UrlEncode(TextBox1.Text); //HttpWebRequestの作成 System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create( requestUrl); System.Net.HttpWebResponse response = null; System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); try { //レスポンスの取得 response = (System.Net.HttpWebResponse)request.GetResponse(); System.IO.Stream strm = response.GetResponseStream(); doc.Load(strm); } catch (Exception ex) { Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message); return; } finally { if (response != null) response.Close(); } //結果を表示 System.Xml.XmlNamespaceManager xmlNSM = new System.Xml.XmlNamespaceManager(doc.NameTable); xmlNSM.AddNamespace("yjs", "urn:yahoo:jp:srch"); System.Xml.XmlNode resultSet = doc.SelectSingleNode("//yjs:ResultSet", xmlNSM); Label1.Text = ""; if (resultSet.Attributes["totalResultsReturned"].Value == "0") { Label1.Text += "該当するページが見つかりませんでした。"; } else { Label1.Text += "<b>" + Server.HtmlEncode(TextBox1.Text) + "</b> の検索結果 約 " + resultSet.Attributes["totalResultsAvailable"].Value + "件中 " + resultSet.Attributes["firstResultPosition"].Value + " - " + resultSet.Attributes["totalResultsReturned"].Value + " 件目<br />\n"; Label1.Text += "<ul>\n"; foreach (System.Xml.XmlNode node in resultSet.SelectNodes("yjs:Result", xmlNSM)) { Label1.Text += "<li><a href=\"" + node.SelectSingleNode("yjs:ClickUrl", xmlNSM).InnerText + "\">" + node.SelectSingleNode("yjs:Title", xmlNSM).InnerText + "</a>"; } Label1.Text += "</ul>\n"; } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Yahoo!ウェブ検索Webサービスのサンプル</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="検索" /><br /> <br /> <asp:Label ID="Label1" runat="server" EnableViewState="False"></asp:Label> </div> </form> <!-- Begin Yahoo! JAPAN Web Services Attribution Snippet --> <span style="margin:15px 15px 15px 15px"> <a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a> </span> <!-- End Yahoo! JAPAN Web Services Attribution Snippet --> </body> </html> }} //これより下は編集しないでください #pageinfo(,2006-09-09 (土) 03:18:49,DOBON!,2006-09-09 (土) 03:18:49,DOBON!) |