我想提取一个图像的链接,但只有当这张图片不包含词“拇指”在其名称。
<a title="" rev="http://insales.ru/images/ large.jpeg" href="http://insales.ru/images/T001.jpeg" class="TestClass">
<img src="http://insales.ru/images/thumb.jpeg" class="productimage">
</a>因此,如果只有图片名没有“拇指”关键字,我想从http://insales.ru/images/thumb.jpeg标记中提取“<img>”行。
我正试着这样做:
//a[@class='TestClass']//img[not(contains(@src, 'thumb'))]不起作用。因为我现在正在从<a>中丢失数据。
有时,我直接从<a>标签中提取链接。从rev还是href。但有时来自<img>,<a>的孩子。
如何指定允许从父或其子节点提取链接的xpath。但对孩子来说是有条件的。
详细信息:
我正在解析来自在线商店的数据。具体来说,我正在尝试获取一个产品的图像。我提供的代码表示一个产品的图像。我只需要大版本的图片。不是小缩略图。问题是,有时链接到<a>标记的rev属性中显示的全局图像。有时它出现在<img>标签的src属性中。
案例1(我需要在标记和rev属性中显示链接)
<li class='product-item'>
<a title="" rev="http://insales.ru/images/ large.jpeg" href="http://insales.ru/images/T001.jpeg" class="MagicThumb-swap">
<img src="http://insales.ru/images/thumb_T001" class="productimage" title=" Tissot">
</a>
</li> 在这种情况下,我需要提取http://insales.ru/images/large.jpeg线。我不需要T001,它在<img>标签中。
<img> 案例2(标记和src属性中显示的链接)
<div class='item'>
<a title="" id="Zoomer" class="MagicZoomPlus jqzoom modal" href="http:// insales.ru/images/thumbi14.jpg" >
<img src="http://insales.ru/images/large_i14.jpg" title="Orient” class="productimage">
</a>
</div>在第二个例子中,我需要提取http://insales.ru/images/large行。我也不需要<a>标签中的http:// insales.ru/images/umbi14.jpg。
我知道如何在这两种情况下提取链接。但我不知道如何制作通用xpath,以便在这两种情况下都可以获得大图片的链接。这就是为什么我试图根据链接中的图片名称来创建一个条件。如果有一个‘拇指’关键字在链接im试图过滤掉它。
发布于 2015-04-28 10:46:33
如果我现在已经正确理解了,正确的路径表达式是
//a/@rev[not(contains(.,'thumb'))] | //img/@src[not(contains(.,'thumb'))]其中|是组合节点集的 operator。
假设输入文档如下
<html>
<li class='product-item'>
<a title="" rev="http://insales.ru/images/ large.jpeg" href="http://insales.ru/images/T001.jpeg" class="MagicThumb-swap">
<img src="http://insales.ru/images/thumb_T001" class="productimage" title=" Tissot"/>
</a>
</li>
<div class='item'>
<a title="" id="Zoomer" class="MagicZoomPlus jqzoom modal" href="http:// insales.ru/images/thumbi14.jpg" >
<img src="http://insales.ru/images/large_i14.jpg" title="Orient" class="productimage"/>
</a>
</div>
</html>结果将是(由-----------分隔的单个结果):
rev="http://insales.ru/images/ large.jpeg"
-----------------------
src="http://insales.ru/images/large_i14.jpg"如果您需要包含a的a属性
//a[@class='TestClass']/@rev[not(contains(.,'thumb'))] | //a[@class='TestClass']/img/@src[not(contains(.,'thumb'))]然而,你并没有在你的“详细”描述中提到这一点。
https://stackoverflow.com/questions/29914388
复制相似问题