Общий xpath для доступа к определенному содержимому вкладки, если оно существует

Ниже представлены две веб-страницы с вкладками типа "Функции, приложения и преимущества", здесь я хочу извлечь содержимое только вкладки "Функции". Одна веб-страница, имеющая "Функции" на первой вкладке, и другая веб-страница имеют вкладку "Преимущества" вместо "Функции".

http://www.eaton.com/Eaton/ProductsServices/Hydraulics/Accumulators/PCT_256248 http://www.eaton.com/Eaton/ProductsServices/Vehicle/Superchargers/RSeries/index.htm

Пробный метод: с помощью "кода ниже" и xpath("//a[span='Features']/../../../div/div") я могу получить содержимое всех вкладок, которые присутствует на веб-странице. Но моя проблема в том, что я ищу общий "xpath", который должен получать содержимое только "Функций" на веб-странице, и он не должен ничего отображать, если отсутствует вкладка "Функции".

 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());
   }

1 ответ

Обратите внимание, что цель divid соответствует href атрибут заголовка вкладки. Например, когда href значение атрибута "#tabs-1"соответствующий divid значение атрибута "tabs-1",

Используя эту корреляцию, это один из возможных XPath, который вернет <div> элемент, который соответствует Features ссылка / вкладка или ничего не вернуть при отсутствии Features вкладка:

//div[concat('#', @id)=preceding::a[span='Features']/@href]
Другие вопросы по тегам