【发布时间】:2013-03-26 00:20:51
【问题描述】:
我正在尝试使用 Hpple 和 xpath 从您的 HTML 列表中获取所有图像,但没有任何好处
我的 HTML 节点像这样
<ul id="week_slider">
<div id="week_program_img">
<img id="Img1" src="imageurl">
</div>
</ul>
但有时(img)标签在(a)这样的标签内
<a href="url">
<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 *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"]; } } }
【问题讨论】:
-
//ul[@id='week_slider']//div[@id='week_program_img']//img? -
//img/@src怎么样? -
感谢回复,我尝试了 //img 和 //img/@src 都没有得到任何图像!
-
你使用 firebug fireXpath 插件吗?使用
//img/@src,我在当前页面上发现了许多图像。你呢? -
不,我不使用它,但我刚刚安装它,我可以用 fireXpath 做什么?
标签: xpath