如何使用xpath获取ul中所有图像的src

时间:2015-02-01 05:59:10

标签: php html xpath web-scraping

我需要找到属于这个ul的所有图像的src。我正在使用xpath来做到这一点。但它只返回第一张图像的src。如何获得所有src?这是我的HTML结构。

<ul id="product-slider">
  <li >
    <img src="1.jpg" width="310" height="363" />
  </li>
  <li>
    <img src="2.jpg" style="opacity: 1;">
 </li>
 <li>
    <img  width="310" height="363" src="3.jpg">
 </li>      
</ul>

这是我的代码段。

$img = $xpath->query("//ul[@id='product-slider']//img/@src");
foreach($img as $i){
  echo $i->nodeValue;
}

除了第一个,它没有找到所有图像的src。 有人可以提供一些帮助吗?

看看这个http://codepad.viper-7.com/RiiFfK

1 个答案:

答案 0 :(得分:1)

要获取此src中所有图像的列表(实际上是ul属性中的所有值),在您的情况下,您可以使用XPath Axes:

//ul[@id='product-slider']/descendant::img/@src

这是做什么的:

  1. /ul[@id='product-slider']选择带ul的{​​{1}}元素

  2. id='product-seller'/descendant::img

  3. 中选择所有后代(儿童,孙子等)
  4. ul选择每个后代的/@src属性。

  5. XPath Axes是一个很棒的工具,你可以在这里找到更多关于它的信息:http://www.w3schools.com/xpath/xpath_axes.asp(我知道它们不是所有内容中最可靠的来源,但是这个XPath教程是一个很好的介绍)。

    编辑:使用来自键盘的OP新代码段作为示例: 来自Snapdeal Link的源代码中的捕获元素以下src,其中只有第一个ul标记包含img属性。 < / p>

    src