用于访问特定选项卡内容(如果存在)的通用xpath



下面是两个有"功能,应用和好处"标签的网页,在这里我想只提取"功能"选项卡的内容。一个网页有"功能"在第一个标签和其他网页有"优点"而不是"功能"选项卡。

http://www.eaton.com/Eaton/ProductsServices/Hydraulics/Accumulators/PCT_256248http://www.eaton.com/Eaton/ProductsServices/Vehicle/Superchargers/RSeries/index.htm tabs-2

尝试方法:通过使用"下面的代码"和xpath("//a[span='Features']/../../../div/div"),我能够获取在网页中存在的所有选项卡的内容。但是,我的问题是我在看对于一般的"xpath",应该只在网页中获取"Features"的内容,它应该如果"功能"选项卡不存在,则不显示任何内容。

 HtmlCleaner htmCleaner = new HtmlCleaner();
   String s = "http://www.eaton.com/Eaton/ProductsServices/Hydraulics/Accumulators/PCT_256248";
   Document doc =  Jsoup.connect(s).timeout(30000).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2").get();
   String pageContent=doc.toString();
   TagNode node = htmCleaner.clean(pageContent);
   Object[] statsNode = node.evaluateXPath("//a[span='Features']/../../../div/div");
   for(int i=0;i<statsNode.length;i++){
   TagNode resultNode = (TagNode) statsNode[i];
   System.out.print(resultNode.getText());
   }

注意目标div id对应于标签头的href属性。例如,当href属性值为"#tabs-1"时,对应的div id属性值为"tabs-1"

利用这种相关性,这是一种可能的XPath,它将返回与Features link/tab对应的<div>元素,或者在缺少Features tab时不返回任何元素:

//div[concat('#', @id)=preceding::a[span='Features']/@href]

相关内容

  • 没有找到相关文章

最新更新