ASP Xml多重循环
为了填充图像,我将如何循环使用XML 我可以在各个元素之间循环,它可以工作,如下所示,但我希望从同一个循环中访问其他元素ASP Xml多重循环,xml,asp-classic,Xml,Asp Classic,为了填充图像,我将如何循环使用XML 我可以在各个元素之间循环,它可以工作,如下所示,但我希望从同一个循环中访问其他元素 <% Dim xml, thumbnail, content, description, player, entry, title, list Set xml = Server.CreateObject("MSXML2.FreeThreadedDOMDocument") xml.async = False xml.SetProperty
<%
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
%>
我想从其他元素(如title和player)中获取值,但我必须使用单个循环才能使其工作。有没有办法让他们同时进入同一个循环
多谢各位
Douglas您可以在经典ASP.NET中使用XPATH
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基础知识的示例:您可能希望避免使用
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
为xml中的每个条目选择。选择节点(“提要/条目”)
响应。写入“Title:&Server.HTMLEncode(entry.selectSingleNode(“Title”).Text)”和“
”
响应。写入“播放器URL:&Server.HTMLEncode(entry.selectSingleNode(“媒体:组/媒体:播放器/@URL).Text)”和“
”
响应。写入“缩略图URL:&Server.HTMLEncode(entity.selectSingleNode(“媒体:组/媒体:缩略图/@URL”).Text)”和“
”
响应。写“
”
下一个
请注意,默认情况下,选择语言是XSL模式,而不是XPath。虽然XPath对于某些简单场景更强大,但它可能会带来更多麻烦。