XPath пересечение двух множеств

#xpath

#xpath

Вопрос:

Мне нужно извлечь все ссылки из html-документа, имеющего текст в качестве внутреннего элемента, а не ссылку на изображение. В принципе, я хотел бы сделать doc.select(«//a/attribute::href») для всех элементов в дереве, где doc.select(«//a/text()») возвращает что угодно. Спасибо!

Ответ №1:

Ну, вы можете написать условия в XPath в предикате в квадратных скобках, например, //a[text()]/@href выбирает href атрибуты всех элементов link ( a ), которые имеют хотя бы один дочерний текстовый узел. Или, если вы хотите убедиться, что в ссылке нет img дочернего элемента , вы можете использовать, например, //a[not(img)]/@href .