2011-08-23 2 views
1

이미지를 채우기 위해 XML을 통해 루핑하는 방법은 무엇입니까?ASP 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 

%> 

제목과 플레이어와 같은 다른 요소의 값을 가져오고 싶지만 개별 루프를 사용해야 작동합니다. 같은 루프에서 또는 동시에 그들을 얻을 수있는 방법이 있습니까?

당신에게

더글러스 감사

답변

0

당신은 여기

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는의 기초에 도움이 몇 가지 예입니다 클래식 ASP 내부 XPATH를 사용할 수 있습니다 http://www.w3schools.com/xpath/xpath_examples.asp

+0

기본적으로 선택 언어는 XPath가 아닌 XSL 패턴입니다. XPath는 단순한 시나리오에 비해 더 강력하지만 그 가치보다 더 많은 문제가 될 수 있습니다. – AnthonyWJones

0

그럼 당신 ' 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