使用 xpath 获取所有图像 [英] get all images with 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屋!