使用 xpath 获取所有图像 [英] get all images with xpath

查看:72
本文介绍了使用 xpath 获取所有图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Hpple 和 xpath 从 HTML 中的 u 列表中获取所有图像,但没有任何好处

像这样我的 HTML 节点

    <div id="week_program_img"><img id="Img1" src="imageurl">

但有时(img)标签在(a)这样的标签内

<img id="Img1" src="imageurl"></a>

当将此路径放入 xpath

时,我只能获取图像(不在a"标签中)

//ul[@id='week_slider']//div[@id='week_program_img']

当将此路径放入 xpath 时,我也可以获得图像(在 'a' 标签中)

//ul[@id='week_slider']//div[@id='week_program_img']/a

但我想同时获取所有图像,无论有无标签我怎样才能在同一个 xpath 中做到这一点?我尝试使用 (or) , (|) , (and) 这样的运算符

//ul[@id='week_slider']//div[@id='week_program_img'] |//ul[@id='week_slider']//div[@id='week_program_img']/a

但效果不佳

我的完整代码:

<块引用>

NSString *tutorialsXpathQueryStringimage1 =@"//ul[@id='week_slider']//div[@id='week_program_img']";

NSArray *newsNodesimage1 = [newsParser searchWithXPathQuery:tutorialsXpathQueryStringimage1];NSMutableArray *image1 = [[NSMutableArray alloc] initWithCapacity:0];for (TFHppleElement *newsNodesimage1 中的元素) {教程 *tutorial = [[教程分配] init];[image1 addObject:tutorial];for (TFHppleElement *child in element.children) {if ([child.tagName isEqualToString:@"img"]) {tutorial.imageUrl = [child objectForKey:@"src"];}}}

解决方案

使用:

//ul[@id='week_slider']//div[@id='week_program_img']//img

或者,如果您想选择每个此类图像的父级(根据提供的 XPath 表达式似乎就是这种情况),请使用:

//ul[@id='week_slider']//div[@id='week_program_img']/descendant-or-self::*[img]

I'm trying to get all image from u list in HTML with Hpple and xpath but no benefit

my HTML node like these

<ul id="week_slider">
      <div id="week_program_img">
            <img id="Img1" src="imageurl">    
      </div>
</ul>

but some times (img) tags be inside (a) tags like this

<a href="url">
       <img id="Img1" src="imageurl"> 
</a>

and I can get only the images (which not in 'a' tags) when put this path in xpath

//ul[@id='week_slider']//div[@id='week_program_img']

also I can get images (which in 'a' tags) when put this path in xpath

//ul[@id='week_slider']//div[@id='week_program_img']/a

but I want to get all of images in same time both of in or without tags how can i do this in same xpath ? i try use (or) , (|) , (and) operators like this

//ul[@id='week_slider']//div[@id='week_program_img'] | //ul[@id='week_slider']//div[@id='week_program_img']/a 

but it's not working fine

my full code :

NSString *tutorialsXpathQueryStringimage1 = @"//ul[@id='week_slider']//div[@id='week_program_img']";

NSArray *newsNodesimage1 = [newsParser searchWithXPathQuery:tutorialsXpathQueryStringimage1];




NSMutableArray *image1 = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in newsNodesimage1) {



    Tutorial *tutorial = [[Tutorial alloc] init];
    [image1 addObject:tutorial];

    for (TFHppleElement *child in element.children) {
        if ([child.tagName isEqualToString:@"img"]) {

            tutorial.imageUrl = [child objectForKey:@"src"];
        }
    }


}

解决方案

Use:

//ul[@id='week_slider']//div[@id='week_program_img']//img

Or in case you want to select the parent of every such image, which seems to be the case based on the provided XPath expressions, use:

//ul[@id='week_slider']//div[@id='week_program_img']/descendant-or-self::*[img]

这篇关于使用 xpath 获取所有图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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