ASP Xml Multiple Looping - PullRequest
       1

ASP Xml Multiple Looping

1 голос
/ 23 августа 2011

Как бы я пошел по циклу через XML, чтобы заполнить изображение?

Я могу проходить через отдельные элементы, и это работает, как показано ниже, но я хочу получить доступ к другим элементам из того же цикла.

<%
    Dim xml, thumbnail, content, description, player, entry, title, list
    Set xml = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
    xml.async = False
    xml.SetProperty "ServerHTTPRequest", True
    xml.Load("http://gdata.youtube.com/feeds/api/users/Shuggy23/favorites?orderby=updated&max-results=15")

    Set entry = xml.getElementsByTagName("entry")
    Set thumbnail = xml.getElementsByTagName("media:thumbnail")
    Set content = xml.getElementsByTagName("media:content")
    Set description = xml.getElementsByTagName("media:description")
    Set player = xml.getElementsByTagName("media:player")
    Set title = xml.getElementsByTagName("media:title")

    For Each xmlItem In thumbnail
        Response.Write xmlItem.getAttribute("url") & "<br />"
    Next

%>

Я хочу получить значения из других элементов, таких какназвание и игрок, но я должен использовать отдельные петли, чтобы заставить его работать.Есть ли способ получить их в одном цикле или в одно и то же время?

Спасибо

Дуглас

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Хорошо, вы захотите избегать использования метода getElementsByTagName, просто нет хорошего способа получить доступ к структурированной информации с помощью этого метода.

Звучит так, как будто вы сначала хотите перечислить записи в ленте: -

 For Each entry In xml.selectNodes("feed/entry")
   ''# Do stuff with an entry.
 Next

Теперь для каждой записи вы хотите получить заголовок и URL-адрес игрока, и я предполагаю, что вы на самом деле хотите только один из множества возможных URL-адресов миниатюр.

 For Each entry In xml.selectNodes("feed/entry")

     Response.Write "Title: " & Server.HTMLEncode(entry.selectSingleNode("title").Text) & "<br />"
     Response.Write "Player URL: " & Server.HTMLEncode(entry.selectSingleNode("media:group/media:player/@url).Text) & "<br />"
     Response.Write "Thumbnail URL : " & Server.HTMLEncode(entity.selectSingleNode("media:group/media:thumbnail/@url").Text) & "<br />"

     Response.Write "<br />"
 Next
0 голосов
/ 23 августа 2011

Вы можете использовать XPATH внутри Classic ASP

Dim xml, thumbnail, content, description, player, entry, title, list
Set xml = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
xml.async = False
xml.SetProperty "ServerHTTPRequest", True
xml.Load("http://gdata.youtube.com/feeds/api/users/Shuggy23/favorites?orderby=updated&max-results=15")

set media_player = xml.selectNodes("feed[0]/entry[0]/media:group[0]/media:player[0]/@url")
if media_player.length > 0 then
    response.Write(media_player(0).Text)
else
    response.Write("not found")
end if

Вот несколько примеров, которые помогут с основами xpath: http://www.w3schools.com/xpath/xpath_examples.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...