aspxのデータをhtmlで表示したいです。
下記URLのデータのようなaspxの情報を静的なhtmlで表示したいです。
http://xml.pinnaclesports.com/pinnacleFeed.aspx
できれば、範囲指定をして表示させたいのでタグで範囲指定する方法等、あればそちらも併せてお伺いしたいです。
何卒よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
質問がアバウト過ぎて分からない事だらけです。
aspxのデータと書いてあるから中身はHTMLかと思ったら、指定されてるURLの中身はXMLだった。
なぜ素直にXMLをHTMLにしたいと言わないのか?
入力データは毎回そのURLから読み込まなければならないのか?
タグで範囲指定するのはプログラマーなのか?それともユーザーなのか?
静的なhtmlで表示したいというのはhtmlファイルを生成するという意味なのか?
htmlを生成するのはリアルタイムなのか?
せめてプログラム言語は何を使うのかくらいは書いてほしい。
まあ文句ばっか言って何も解決策を書かない回答は嫌いなので、とりあえず作りますよ。
質問のタグにASP.NETって付いてるからASP.NET Formで作りますよ。
質問者がVB.NETを読めるのか知らないけど。
指定されたURLのデータは1MByte以上あるので、表示に毎回20秒くらいかかるけど。
htmlファイルを生成する意味はまったくないけど。
出力先のローカルパスとリダイレクト先のURLは調整する必要があるけど。
たぶん求めているのはコレじゃないとは思うけど。
lang
1Imports System.Web.UI.HtmlControls '← System.Web の参照必須! 2 3Partial Public Class WebForm1 4 Inherits System.Web.UI.Page 5 6 Private Class EventData 7 Public gamenumber As Long 8 Public sporttype As String 9 Public league As String 10 11 Public participants As List(Of Participant) = New List(Of Participant) 12 End Class 13 14 Private Class Participant 15 Public participant_name As String 16 End Class 17 18 Private m_EventList As List(Of EventData) = New List(Of EventData) 19 20 Private Sub WebForm1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 21 22 Dim xDocument = New System.Xml.XmlDocument() 23 Call xDocument.Load("http://xml.pinnaclesports.com/pinnacleFeed.aspx") 24 25 Dim xEventsElements = xDocument.GetElementsByTagName("events") 26 Dim xEvents = xEventsElements(0) 27 28 For Each xEvent As System.Xml.XmlNode In xEvents 29 30 Dim eventData = New EventData 31 For Each xEventChild As System.Xml.XmlNode In xEvent.ChildNodes 32 Select Case xEventChild.Name 33 Case "gamenumber" 34 eventData.gamenumber = Long.Parse(xEventChild.InnerText) 35 Case "sporttype" 36 eventData.sporttype = xEventChild.InnerText 37 Case "league" 38 eventData.league = xEventChild.InnerText 39 40 Case "participants" 41 For Each xParticipant As System.Xml.XmlNode In xEventChild.ChildNodes 42 43 Dim participant = New Participant() 44 For Each xParticipantChild As System.Xml.XmlNode In xParticipant.ChildNodes 45 Select Case xParticipantChild.Name 46 Case "participant_name" 47 participant.participant_name = xParticipantChild.InnerText 48 End Select 49 Next 50 eventData.participants.Add(participant) 51 Next 52 End Select 53 Next 54 m_EventList.Add(eventData) 55 56 57 Dim sb = New System.Text.StringBuilder(200) 58 sb.Append(eventData.league & " (" & eventData.sporttype & ") : ") 59 sb.Append(eventData.participants(0).participant_name) 60 For i As Integer = 1 To eventData.participants.Count - 1 61 sb.Append(" vs " & eventData.participants(1).participant_name) 62 Next 63 64 ListBox1.Items.Add(New ListItem(sb.ToString, eventData.gamenumber.ToString)) 65 Next 66 End Sub 67 68 69 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 70 71 Dim fileName = "work.html" 72 Dim pathLocal = "C:\inetpub\TestApp\" & fileName 73 Dim pathURL = "/TestApp/" & fileName 74 75 Dim gameNumber = Long.Parse(ListBox1.SelectedValue) 76 77 Dim eventData As EventData = Nothing 78 For Each item In m_EventList 79 If item.gamenumber = gameNumber Then 80 eventData = item 81 Exit For 82 End If 83 Next 84 85 Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8 86 87 Using html As New HtmlGenericControl("html") 88 89 Using head As New HtmlGenericControl("Head") 90 html.Controls.Add(head) 91 92 Using meta As New HtmlMeta 93 head.Controls.Add(meta) 94 With meta 95 .HttpEquiv = "Content-Type" 96 .Content = "text/html" 97 .Attributes("charset") = enc.WebName 98 End With 99 End Using 100 101 Using title As New HtmlTitle 102 head.Controls.Add(title) 103 title.Text = eventData.league & " (" & eventData.sporttype & ")" 104 End Using 105 End Using 106 107 Using body As New HtmlGenericControl("body") 108 html.Controls.Add(body) 109 110 Dim div = New HtmlGenericControl("div") 111 body.Controls.Add(div) 112 div.InnerText = "League : " & eventData.league 113 114 div = New HtmlGenericControl("div") 115 body.Controls.Add(div) 116 div.InnerText = "Sport Type : " & eventData.sporttype 117 118 For Each participant In eventData.participants 119 div = New HtmlGenericControl("div") 120 body.Controls.Add(div) 121 div.InnerText = "Participant : " & participant.participant_name 122 Next 123 End Using 124 125 Using file As New System.IO.FileStream(pathLocal, IO.FileMode.Create) 126 Using writer As New System.Web.UI.HtmlTextWriter(New System.IO.StreamWriter(file, enc)) 127 html.RenderControl(writer) 128 writer.Flush() 129 End Using 130 End Using 131 End Using 132 133 Response.Redirect(pathURL, False) 134 End Sub 135End Class
投稿2015/05/01 11:00
総合スコア314
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。