*Yahoo!検索Webサービス ウェブ検索のXmlDocumentクラスでXMLデータを解析するサンプルコード(VB.NET) [#efc9ef33] Yahoo!検索Webサービスのウェブ検索機能を使って検索を行うサンプルです。[[こちらのサンプル>../../VB.NET]]と違い、xsd.exeを使わずに、XmlDocumentクラスでXMLデータを解析しています。 #code(vbnet){{ <%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Button1_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) 'URLを構築する Dim requestUrl As String = _ "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch" 'アプリケーションIDを指定(必ず指定すること) requestUrl += "?appid=XXXXX" '検索クエリー。UTF-8エンコードする。 requestUrl += "&query=" + Server.UrlEncode(TextBox1.Text) 'HttpWebRequestの作成 Dim request As System.Net.HttpWebRequest = _ CType(System.Net.WebRequest.Create(requestUrl), _ System.Net.HttpWebRequest) Dim response As System.Net.HttpWebResponse = Nothing Dim doc As New System.Xml.XmlDocument() Try 'レスポンスの取得 response = CType(request.GetResponse(), _ System.Net.HttpWebResponse) Dim strm As System.IO.Stream = response.GetResponseStream() doc.Load(strm) Catch ex As Exception Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message) Return Finally If Not (response Is Nothing) Then response.Close() End If End Try '結果を表示 Dim xmlNSM As New System.Xml.XmlNamespaceManager(doc.NameTable) xmlNSM.AddNamespace("yjs", "urn:yahoo:jp:srch") Dim resultSet As System.Xml.XmlNode = _ doc.SelectSingleNode("//yjs:ResultSet", xmlNSM) Label1.Text = "" If resultSet.Attributes("totalResultsReturned").Value = "0" Then Label1.Text += "該当するページが見つかりませんでした。" Else Label1.Text += "<b>" + Server.HtmlEncode(TextBox1.Text) + _ "</b> の検索結果 約 " + _ resultSet.Attributes("totalResultsAvailable").Value + _ "件中 " + _ resultSet.Attributes("firstResultPosition").Value + _ " - " + _ resultSet.Attributes("totalResultsReturned").Value + _ " 件目<br />" + vbLf Label1.Text += "<ul>" + vbLf Dim node As System.Xml.XmlNode For Each 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>" Next node Label1.Text += "</ul>" + vbLf End If End Sub </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:40,DOBON!,2006-09-09 (土) 03:18:40,DOBON!) |