我需要找到属于该 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。 有人可以提供一些帮助吗?
最佳答案
要获取此 ul
内所有图像(实际上是 src
属性中的所有值)的列表,在您的情况下,您可以使用 XPath Axes:
//ul[@id='product-slider']/descendant::img/@src
它的作用是:
/ul[@id='product-slider']
选择带有id='product-seller'
的ul
元素>/descendant::img
从ul
中选择所有后代(子代、孙子等)/@src
选择这些后代中每一个的src
属性。
XPath Axes 是一个很棒的工具,您可以在此处找到有关它的更多信息:http://www.w3schools.com/xpath/xpath_axes.asp (我知道它们并不是所有内容最可靠的来源,但是这个 XPath 教程是一个很好的介绍)。
编辑:使用键盘上OP的新代码片段作为示例:
源代码中捕获的元素来自 Snapdeal Link是下面的ul
,其中只有第一个img
标签包含src
属性。
<ul id="product-slider" class="mainImageSlider">
<li>
<img title="Apple iPhone 5S 16 GB (Gold)" class="jqzoom zoomPad lazyBg" itemprop="image" src="http://n2.sdlcdn.com/imgs/a/j/x/large/Apple-iPhone-5S-16-GB-SDL218153659-1-d5617.jpg" width="310" height="363" alt="Apple iPhone 5S 16 GB (Gold)" bigimage="http://n4.sdlcdn.com/imgs/a/j/x/Apple-iPhone-5S-16-GB-SDL218153659-1-d5617.jpg">
</li>
<li>
<img title="Apple iPhone 5S 16 GB (Gold)" class="jqzoom zoomPad lazyBg" lazySrc="http://n1.sdlcdn.com/imgs/a/j/x/large/Apple-iPhone-5S-16-GB-SDL218153659-2-af89e.jpg" width="310" height="363" alt="Apple iPhone 5S 16 GB (Gold)" bigimage="http://n1.sdlcdn.com/imgs/a/j/x/Apple-iPhone-5S-16-GB-SDL218153659-2-af89e.jpg">
</li>
<li>
<img title="Apple iPhone 5S 16 GB (Gold)" class="jqzoom zoomPad lazyBg" lazySrc="http://n4.sdlcdn.com/imgs/a/p/0/large/Apple-iPhone-5S-16-GB-SDL218153659-3-14019.jpg" width="310" height="363" alt="Apple iPhone 5S 16 GB (Gold)" bigimage="http://n4.sdlcdn.com/imgs/a/p/0/Apple-iPhone-5S-16-GB-SDL218153659-3-14019.jpg">
</li>
<li>
<img title="Apple iPhone 5S 16 GB (Gold)" class="jqzoom zoomPad lazyBg" lazySrc="http://n4.sdlcdn.com/imgs/a/p/0/large/Apple-iPhone-5S-16-GB-SDL218153659-4-fa8f3.jpg" width="310" height="363" alt="Apple iPhone 5S 16 GB (Gold)" bigimage="http://n4.sdlcdn.com/imgs/a/p/0/Apple-iPhone-5S-16-GB-SDL218153659-4-fa8f3.jpg">
</li>
</ul>
关于php - 如何使用xpath获取ul内所有图像的src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28259968/