youtube条目搜索结果的xpath [英] xpath for youtube entry search result

查看:33
本文介绍了youtube条目搜索结果的xpath的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要有关 xpath 查询的帮助,以提取以下 rss 结果中每个条目的标题文本和缩略图网址

i need help with the xpath query to extract the title text and thumbnail url of each entry in the following rss results

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'>
<entry>
<title>LiveFit Augusta - "Gym Time"</title>
<media:group>
<media:thumbnail url='http://i.ytimg.com/vi/Ig7CcLCR2n4/default.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/Ig7CcLCR2n4/mqdefault.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/Ig7CcLCR2n4/hqdefault.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/Ig7CcLCR2n4/1.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/Ig7CcLCR2n4/2.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/Ig7CcLCR2n4/3.jpg'/>
</media:group>
</entry>
<entry>
<title>LiveFit Augusta - "Everyday Joes &amp; Janes"</title>
<media:group>
<media:thumbnail url='http://i.ytimg.com/vi/REhn9jjjV7Q/default.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/REhn9jjjV7Q/mqdefault.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/REhn9jjjV7Q/hqdefault.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/REhn9jjjV7Q/1.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/REhn9jjjV7Q/2.jpg'/>
<media:thumbnail url='http://i.ytimg.com/vi/REhn9jjjV7Q/3.jpg'/>
</media:group>
</entry>
</feed>

标题

舞蹈的演变

舞蹈的进化<;/media:title>

< media:title type='plain'>Evolution of Dance< /media:title>

缩略图

<media:thumbnail 
      url='http://img.youtube.com/vi/dMH0bHeiRNg/1.jpg' height='97' width='130' 
      time='00:01:30'/>

编辑

这是我使用的代码

Dim xmlDoc As MSXML2.DOMDocument30
Dim xmlNode As MSXML2.IXMLDOMNode
Dim xmlEntryNodes As IXMLDOMNodeList
Dim ns As String
Set xmlDoc = New DOMDocument30
ns = "xmlns:x='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'"
    xmlDoc.setProperty "SelectionLanguage", "XPath"
    xmlDoc.setProperty "SelectionNamespaces", ns

If xmlDoc.loadXML(xmlText) = False Then
  Exit Function
End If

Set xmlEntryNodes = xmlDoc.documentElement.selectNodes("/feed/entry")

debug.print xmlEntryNodes.Length 返回 0

debug.print xmlEntryNodes.Length returns 0

推荐答案

使用:

ns = "xmlns:x='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'"

ns = "xmlns:x='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'"

doc.SetProperty("SelectionNamespaces", ns)

doc.SetProperty("SelectionNamespaces", ns)

然后使用这样的 XPath 表达式:

/*/x:entry/x:title[. = 'Evolution of Dance']

还有这个:

/*/x:entry/media:group/media:thumbnail[@url='http://img.youtube.com/vi/dMH0bHeiRNg/1.jpg']

在此处了解有关 SetProperty() 函数的更多信息:

Learn more about the SetProperty() function here:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms756048(v=vs.85).aspx

或者,如果您不想注册命名空间,您可以使用可读性较差的表达式如下:

Alternatively, if you don't want to register namespaces, you may use less-readable expressions like these:

/*/*[name()='entry']/*[name()='title'][. = 'Evolution of Dance']

还有这个:

/*/*[name()='entry']
       /*[name()='media:group']
           /*[name()='media:thumbnail']
                 [@url='http://img.youtube.com/vi/dMH0bHeiRNg/1.jpg']

这篇关于youtube条目搜索结果的xpath的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆