Похоже, вы пытаетесь смешать селекторы CSS с XPath.Вы хотите использовать предикат ([...]
) для просмотра значения атрибута class
.
Например, ваш //div.link
может выглядеть как //div[contains(concat(' ',normalize-space(@class),' '),' link ')]
.
Во-вторыхвнутри цикла вы пытаетесь сделать запрос с контекстным узлом, а затем игнорируете его, используя абсолютный путь к местоположению (он начинается с косой черты).
Обновлено , чтобы отразить изменения в вопросе:
Ваше второе выражение XPath (/div[@class=link]
) по-прежнему a) абсолютное и b) имеет неверное условие.Вы хотите запросить сопоставление элементов относительно указанного узла контекста ($entry
) с атрибутом class
, имеющим строковое значение из link
.
Итак /div[@class=link]
должен стать чем-то вроде div[@class="link"]
, который ищет дочерние элементы $entry
(используйте .//div[...]
или descendant::div[...]
, если вы хотите искать глубже).