CÓDIGO
<%
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
dim objHTTP
dim objXML
dim objXSL
' set-up XMLHTTP
set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
' obter os dados XML solicitado à localização remota
'Mudar a URL como por sua alimentação.
objHTTP.open "GET", "http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=DEVELOPERIDGOESHERE&id=PLAYLISTIDGOESHERE", false
'O YouTube também tem uma opção que inclui a paginação , http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=dev_id&id=id&page=page&per_page=per_page
objHTTP.send
' salvar o XML em objXML como XML
set objXML = objHTTP.responseXML
If objXML.parseError.errorCode <> 0 Then
response.write "Opa, eu não posso carregar o arquivo XML, desculpe."
End If
Set objLst = objXML.getElementsByTagName("video")
noOfHeadlines = objLst.length
response.write "<center><b>Este são " & noOfHeadlines & " Vídeos nesta lista..</center></b>"
CONST adFldIsNullable = &H00000020
CONST adVarChar = 200
CONST adDate = 7
CONST adOpenDynamic = 2
CONST adUseClient = 3
if noOfHeadlines > 0 then
Set rs = CreateObject("ADODB.recordset")
Dim Currpage, pageLen, lastNumber, PageRem, PageTen
Dim connection, rs, sSQL, sConnString, next10, prev10, P
Dim RSPrevPage, RSNextPage, start
'pega a página atual do usuário , se é a primeira vez que ele
'visita a variável' PageNo 'é vazia, então' CurrPage 'fica definido para 1
'Else a variável página atual "CurrPage' é definido como o número da página solicitada
If IsEmpty(Request.Querystring("PageNo")) then
CurrPage = 1
Else
CurrPage = Cint(Request.Querystring("PageNo"))
End If
'as duas funções abaixo retornam os próximos 10 e os 10 anteriores
Function getNext10(num)
pageLen = len(num)
If pageLen = 1 Then
next10 = 10
Else If pageLen>1 Then
pageRem = 10
pageTen = right(num, 1)
next10 = num + pageRem - pageTen
End If
End If
getNext10 = next10
End Function
Function getPrev10(num)
pageLen = len(num)
If pageLen = 1 then
prev10 = 1
Else If pageLen>1 then
lastNumber = right(num, 1)
prev10 = num - lastNumber - 10
End If
End If
If prev10 = 0 then
prev10 = 1
End If
getPrev10 = prev10
End Function
With rs
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
'.Fields.Append "VIDEO", adVarChar, 255, adFldIsNullable
'.Fields.Append "ID", adDate, 32, adFldIsNullable
.Fields.Append"author",adVarChar,255,adFldIsNullable
.Fields.Append"id",adVarChar,255,adFldIsNullable
.Fields.Append"title",adVarChar,255,adFldIsNullable
.Fields.Append"length_seconds",adVarChar,255,adFldIsNullable
.Fields.Append"rating_avg",adVarChar,255,adFldIsNullable
.Fields.Append"rating_count",adVarChar,255,adFldIsNullable
.Fields.Append"description",adVarChar,255,adFldIsNullable
.Fields.Append"view_count",adVarChar,255,adFldIsNullable
.Fields.Append"upload_time",adVarChar,255,adFldIsNullable
.Fields.Append"comment_count",adVarChar,255,adFldIsNullable
.Fields.Append"tags",adVarChar,255,adFldIsNullable
.Fields.Append"url",adVarChar,255,adFldIsNullable
.Fields.Append"thumbnail_url",adVarChar,255,adFldIsNullable
.Fields.Append"embed_id",adVarChar,255,adFldIsNullable
.open
on error resume next
'Set objHdl = objLst.item
' For i = 0 To (noOfHeadlines) Not using this anymore
For i = 0 To (noOfHeadlines)-1
Set objHdl = objLst.item(i)
.AddNew
.Fields("author") = (objHdl.childNodes(0).text)
.Fields("id") = (objHdl.childNodes(1).text)
.Fields("title") = (objHdl.childNodes(2).text)
.Fields("length_seconds") = (objHdl.childNodes(3).text)
.Fields("rating_avg") = (objHdl.childNodes(4).text)
.Fields("rating_count") = (objHdl.childNodes(5).text)
.Fields("description") = (objHdl.childNodes(6).text)
.Fields("view_count") = (objHdl.childNodes(7).text)
.Fields("upload_time") = (objHdl.childNodes(8).text)
.Fields("comment_count") = (objHdl.childNodes(9).text)
.Fields("tags") = (objHdl.childNodes(10).text)
.Fields("url") = (objHdl.childNodes(11).text)
.Fields("thumbnail_url") = (objHdl.childNodes(12).text)
.Fields("embed_id") = (objHdl.childNodes(13).text)
.update
' lista alfabetica
.Sort = "title ASC"
.MoveFirst
.sort
next
set folder = nothing
set fso = nothing
'Pagesize é usado para definir o número de registros que serão
' Exibido em cada página. Para os nossos propósitos 10 registros é o que queremos.
rs.PageSize = 15
%>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Mostrando Playlist Youtube em XML</title>
</head>
<body>
<p align="center">Here's the playlist XML we want to parse, format, and display:
<a target="_blank" href="http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=zpsaJ4q4Yo0&id=F48E2331F43A70C3">
APHA World Show 2007 Videos</a>.</p>
<div align="center">
<table border="0" width="600">
<tr>
<%
'os próximos 10 e os 10 anteriores
next10 = getNext10(CurrPage)
prev10 = getPrev10(CurrPage)
'Se não há registros
If rs.EOF Then
Response.write "não há registros"
Else
'Isso move o ponteiro registro para o primeiro registro da página atual
rs.AbsolutePage = CurrPage
'abaixo o ciclo irá repetir até que todos os registros da página atual foram
'exibido ou que tenha alcançado o final do rs
Do Until rs.AbsolutePage <> CurrPage OR rs.Eof
x=x +1
mydate = DateAdd("s", rs("upload_time"), "01/01/1970 00:00:00")
response.write "<tr><td><BR>"
if NOT rs("id") = "" then
Response.Write "<br>"& "<BR>" &_
("Author: ")& rs("author") & "<BR>" &_
("Id: ") & rs("id") & "<BR>" &_
"Title: " & rs("title") & "<BR>" &_
"Length: " & rs("length_seconds") & "<BR>" &_
"Rating Avg: " & rs("rating_avg") & "<BR>" &_
"Rating Count: " & rs("rating_count")& "<BR>" &_
"Description: " & rs("description") & "<BR>" &_
"View Count: " & rs("view_count") & "<BR>" &_
"Upload Time: " & mydate & "<BR>" &_
"Comments: " & rs("comment_count") & "<BR>" &_
"Tags: " & rs("tags") & "<BR>" &_
"URL: " & "<a target=_blank href=" & rs("url") & ">" & rs("url") & "</a><BR>" &_
"Thumbnail: " & "<img src=" & rs("thumbnail_url") & "><BR>" &_
"Embed ID: " & rs("embed_id")
response.write "<hr>"
end if
response.write "</td><td>"
if x = 5 then 'isto é, se você quiser várias colunas
response.write "</tr><tr>"
x = 0
end if
rs.MoveNext
Loop
end if
%>
</tr>
</table>
</div>
<div align="center" style="font-size: 12pt; font-weight: bold">
<%
'a próxima 2 linhas, o número de página para a "anterior" e "Next" links
RSPrevPage = CurrPage -1
RSNextPage = CurrPage + 1
'descobrir o número de páginas retornadas no rs
'Se o número da página Next10 é maior que o número de páginas rs
'Next10 então definido para o RS pagecount
If Next10 > rs.PageCount Then
Next10 = rs.PageCount
End If
'início variável determina onde começar a navegação da página
'Ou seja, 1, 10, 20, 30 e assim por diante.
If prev10 = 1 AND next10 - 1 < 10 Then
start = 1
Else
start = Next10 - 10
If right(start, 1) > 0 Then
start = replace(start, right(start, 1), "0")
start = start + 10
End If
End If
'Isso verifica para se certificar de que há mais de uma página de resultados
If rs.PageCount > 1 Then
If currpage > 1 Then
response.write("<a href=""list.asp?PageNo=" & Prev10 & """><<</a> ")
End If
If NOT RSPrevPage = 0 then
response.write("<a href=""list.asp?PageNo=" & RSPrevPage & """><</a> ")
End If
'Loop através do número da página de navegação usando P como nossa variável loopcounter
For P = start to Next10
If NOT P = CurrPage then
response.write("<a href=""list.asp?PageNo=" & P & """>" & P & "</a> ")
Else
response.write(" <b>" & P & " </b>")
End If
Next
'Isto faz o mesmo que o anterior "link", mas para o "link" next
If NOT RSNextPage > rs.PageCount Then
response.write("<a href=""list.asp?PageNo=" & RSNextPage & """>></a> ")
End If
If NOT Next10 = rs.PageCount Then
response.write(" <a href=""list.asp?PageNo=" & Next10 & """>>></a>")
End If
End If
' Fechar o RS e objeto de conexão
rs.Close
Set rs =Nothing
end with
end if
%>
</div>
</body>
</html>
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
dim objHTTP
dim objXML
dim objXSL
' set-up XMLHTTP
set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
' obter os dados XML solicitado à localização remota
'Mudar a URL como por sua alimentação.
objHTTP.open "GET", "http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=DEVELOPERIDGOESHERE&id=PLAYLISTIDGOESHERE", false
'O YouTube também tem uma opção que inclui a paginação , http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=dev_id&id=id&page=page&per_page=per_page
objHTTP.send
' salvar o XML em objXML como XML
set objXML = objHTTP.responseXML
If objXML.parseError.errorCode <> 0 Then
response.write "Opa, eu não posso carregar o arquivo XML, desculpe."
End If
Set objLst = objXML.getElementsByTagName("video")
noOfHeadlines = objLst.length
response.write "<center><b>Este são " & noOfHeadlines & " Vídeos nesta lista..</center></b>"
CONST adFldIsNullable = &H00000020
CONST adVarChar = 200
CONST adDate = 7
CONST adOpenDynamic = 2
CONST adUseClient = 3
if noOfHeadlines > 0 then
Set rs = CreateObject("ADODB.recordset")
Dim Currpage, pageLen, lastNumber, PageRem, PageTen
Dim connection, rs, sSQL, sConnString, next10, prev10, P
Dim RSPrevPage, RSNextPage, start
'pega a página atual do usuário , se é a primeira vez que ele
'visita a variável' PageNo 'é vazia, então' CurrPage 'fica definido para 1
'Else a variável página atual "CurrPage' é definido como o número da página solicitada
If IsEmpty(Request.Querystring("PageNo")) then
CurrPage = 1
Else
CurrPage = Cint(Request.Querystring("PageNo"))
End If
'as duas funções abaixo retornam os próximos 10 e os 10 anteriores
Function getNext10(num)
pageLen = len(num)
If pageLen = 1 Then
next10 = 10
Else If pageLen>1 Then
pageRem = 10
pageTen = right(num, 1)
next10 = num + pageRem - pageTen
End If
End If
getNext10 = next10
End Function
Function getPrev10(num)
pageLen = len(num)
If pageLen = 1 then
prev10 = 1
Else If pageLen>1 then
lastNumber = right(num, 1)
prev10 = num - lastNumber - 10
End If
End If
If prev10 = 0 then
prev10 = 1
End If
getPrev10 = prev10
End Function
With rs
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
'.Fields.Append "VIDEO", adVarChar, 255, adFldIsNullable
'.Fields.Append "ID", adDate, 32, adFldIsNullable
.Fields.Append"author",adVarChar,255,adFldIsNullable
.Fields.Append"id",adVarChar,255,adFldIsNullable
.Fields.Append"title",adVarChar,255,adFldIsNullable
.Fields.Append"length_seconds",adVarChar,255,adFldIsNullable
.Fields.Append"rating_avg",adVarChar,255,adFldIsNullable
.Fields.Append"rating_count",adVarChar,255,adFldIsNullable
.Fields.Append"description",adVarChar,255,adFldIsNullable
.Fields.Append"view_count",adVarChar,255,adFldIsNullable
.Fields.Append"upload_time",adVarChar,255,adFldIsNullable
.Fields.Append"comment_count",adVarChar,255,adFldIsNullable
.Fields.Append"tags",adVarChar,255,adFldIsNullable
.Fields.Append"url",adVarChar,255,adFldIsNullable
.Fields.Append"thumbnail_url",adVarChar,255,adFldIsNullable
.Fields.Append"embed_id",adVarChar,255,adFldIsNullable
.open
on error resume next
'Set objHdl = objLst.item
' For i = 0 To (noOfHeadlines) Not using this anymore
For i = 0 To (noOfHeadlines)-1
Set objHdl = objLst.item(i)
.AddNew
.Fields("author") = (objHdl.childNodes(0).text)
.Fields("id") = (objHdl.childNodes(1).text)
.Fields("title") = (objHdl.childNodes(2).text)
.Fields("length_seconds") = (objHdl.childNodes(3).text)
.Fields("rating_avg") = (objHdl.childNodes(4).text)
.Fields("rating_count") = (objHdl.childNodes(5).text)
.Fields("description") = (objHdl.childNodes(6).text)
.Fields("view_count") = (objHdl.childNodes(7).text)
.Fields("upload_time") = (objHdl.childNodes(8).text)
.Fields("comment_count") = (objHdl.childNodes(9).text)
.Fields("tags") = (objHdl.childNodes(10).text)
.Fields("url") = (objHdl.childNodes(11).text)
.Fields("thumbnail_url") = (objHdl.childNodes(12).text)
.Fields("embed_id") = (objHdl.childNodes(13).text)
.update
' lista alfabetica
.Sort = "title ASC"
.MoveFirst
.sort
next
set folder = nothing
set fso = nothing
'Pagesize é usado para definir o número de registros que serão
' Exibido em cada página. Para os nossos propósitos 10 registros é o que queremos.
rs.PageSize = 15
%>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Mostrando Playlist Youtube em XML</title>
</head>
<body>
<p align="center">Here's the playlist XML we want to parse, format, and display:
<a target="_blank" href="http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=zpsaJ4q4Yo0&id=F48E2331F43A70C3">
APHA World Show 2007 Videos</a>.</p>
<div align="center">
<table border="0" width="600">
<tr>
<%
'os próximos 10 e os 10 anteriores
next10 = getNext10(CurrPage)
prev10 = getPrev10(CurrPage)
'Se não há registros
If rs.EOF Then
Response.write "não há registros"
Else
'Isso move o ponteiro registro para o primeiro registro da página atual
rs.AbsolutePage = CurrPage
'abaixo o ciclo irá repetir até que todos os registros da página atual foram
'exibido ou que tenha alcançado o final do rs
Do Until rs.AbsolutePage <> CurrPage OR rs.Eof
x=x +1
mydate = DateAdd("s", rs("upload_time"), "01/01/1970 00:00:00")
response.write "<tr><td><BR>"
if NOT rs("id") = "" then
Response.Write "<br>"& "<BR>" &_
("Author: ")& rs("author") & "<BR>" &_
("Id: ") & rs("id") & "<BR>" &_
"Title: " & rs("title") & "<BR>" &_
"Length: " & rs("length_seconds") & "<BR>" &_
"Rating Avg: " & rs("rating_avg") & "<BR>" &_
"Rating Count: " & rs("rating_count")& "<BR>" &_
"Description: " & rs("description") & "<BR>" &_
"View Count: " & rs("view_count") & "<BR>" &_
"Upload Time: " & mydate & "<BR>" &_
"Comments: " & rs("comment_count") & "<BR>" &_
"Tags: " & rs("tags") & "<BR>" &_
"URL: " & "<a target=_blank href=" & rs("url") & ">" & rs("url") & "</a><BR>" &_
"Thumbnail: " & "<img src=" & rs("thumbnail_url") & "><BR>" &_
"Embed ID: " & rs("embed_id")
response.write "<hr>"
end if
response.write "</td><td>"
if x = 5 then 'isto é, se você quiser várias colunas
response.write "</tr><tr>"
x = 0
end if
rs.MoveNext
Loop
end if
%>
</tr>
</table>
</div>
<div align="center" style="font-size: 12pt; font-weight: bold">
<%
'a próxima 2 linhas, o número de página para a "anterior" e "Next" links
RSPrevPage = CurrPage -1
RSNextPage = CurrPage + 1
'descobrir o número de páginas retornadas no rs
'Se o número da página Next10 é maior que o número de páginas rs
'Next10 então definido para o RS pagecount
If Next10 > rs.PageCount Then
Next10 = rs.PageCount
End If
'início variável determina onde começar a navegação da página
'Ou seja, 1, 10, 20, 30 e assim por diante.
If prev10 = 1 AND next10 - 1 < 10 Then
start = 1
Else
start = Next10 - 10
If right(start, 1) > 0 Then
start = replace(start, right(start, 1), "0")
start = start + 10
End If
End If
'Isso verifica para se certificar de que há mais de uma página de resultados
If rs.PageCount > 1 Then
If currpage > 1 Then
response.write("<a href=""list.asp?PageNo=" & Prev10 & """><<</a> ")
End If
If NOT RSPrevPage = 0 then
response.write("<a href=""list.asp?PageNo=" & RSPrevPage & """><</a> ")
End If
'Loop através do número da página de navegação usando P como nossa variável loopcounter
For P = start to Next10
If NOT P = CurrPage then
response.write("<a href=""list.asp?PageNo=" & P & """>" & P & "</a> ")
Else
response.write(" <b>" & P & " </b>")
End If
Next
'Isto faz o mesmo que o anterior "link", mas para o "link" next
If NOT RSNextPage > rs.PageCount Then
response.write("<a href=""list.asp?PageNo=" & RSNextPage & """>></a> ")
End If
If NOT Next10 = rs.PageCount Then
response.write(" <a href=""list.asp?PageNo=" & Next10 & """>>></a>")
End If
End If
' Fechar o RS e objeto de conexão
rs.Close
Set rs =Nothing
end with
end if
%>
</div>
</body>
</html>
[/code]

Help














