Xpath和YQL的麻烦

时间:2012-07-17 22:00:41

标签: xml xpath yql

希望这很容易。我正在尝试使用YQL从单词新闻博客的不同文章中拉出“标题”图像。每篇文章都有一个不同的“标题”图像,类名略有不同(没有id)。我需要的每个图像都共享一个基本的css类,“alignright”。如果我像下面那样进行查询,我什么也得不到。

select * from html where url="urlofblog.com/" and xpath="//img[@class='alignright']"

但是,如果我更改查询以使其完全匹配特定图像的类

select * from html where url="urlofblog.com/" and xpath="//img[@class='alignright size-full wp-image-3051']"

我得到了有问题的图片。看起来YQL认为“img [@ class =”是一个大字符串,而不是多个输入。问题是这些图像类在被视为一个大字符串时都不匹配。以下是我试图解决的问题:

  1. 我已经查看了YQL的'like'参数。 (没有运气找到有用的东西)
  2. 试图找到一个更好的方法用xpath(直到今天我从未使用过)。那次搜索让我here。到目前为止,我仍然无法让它发挥作用。
  3. 我尝试过使用:img [matches(@class,'\ balignright \ b')],但我不认为YQL支持它。
  4. 有没有人知道是否有办法使用该基础css类获取图像?我无权在博客上更改任何内容(例如插入ID)。

2 个答案:

答案 0 :(得分:1)

您可以使用XPath字符串函数,例如starts-with

//img[starts-with(@class, 'alignright')]

答案 1 :(得分:1)

使用XPath contains()字符串函数会很好。看起来您正在尝试从Wordpress站点获取图像,该站点将根据需要向项目添加类。不要担心它是否从CSS类开始,只是img在class属性中有CSS类。

//img[contains(@class,'alignright')]