@Mimino ни один сервис не решает ее нормально. Параметр минимального скоре это ерунда. Проверка скоре на каком нибудь сайте тоже может сильно отличаеться от того какой скоре будет на вашем сайте в действительности. Лучше всего немного походить по ссылкам внутри вашего сайта и иметь хорошие отпечатки и прокси.
Некорректно работает not/=false в XPath? Ищи другое решение!
-
Задача:
Получить (!) классы каждой section за исключением не отображаемых (display: none).
Дано:
class='..' - набор различных классов.
<div class='a'> <article class='b ..'> <section class='c ..'> <div class='..'>point</> </> <section class='c ..'> <span class='head'> point </> <span class='value'> point </> </> <section class='c ..' style='display: none;'> </> <section class='c ..' style='display: none;'> <span class='head'> trash </> </> </> </>Решение:
Работает при поиске в браузере (в BAS не работает):
- //section[contains(@class, "с") and (contains(@style, "none"))=false]/@class
- //section[not(contains(@style, "none"))]
Работает в BAS (так как у span один класс можно не применять contains):
- //span[contains(@class, "value")]/parent::section[contains(@class, "с")]/@class
То есть сначала заход через дочерний элемент, класс value, потом через родителя.
(для div'а нужно прописать аналог через | но это будет уже много)
Где здесь ошибка?
Картинки: (/@class убран)
Пример с div через | :

Пример здорового XPath :

-
@y4n23x said in Некорректно работает not/=false в XPath? Ищи другое решение!:
//section[not(contains(@style, "none"))]этот работает, но не всегда. Проблема в том что в бас нет варианта за раз взять все подходящие элементы. Надо перебирать в цикле.
вот пример в первом варианте работает:
https://dropmefiles.com/Dr9ps@Fox а вот этот уже к тебе вопрос - во втором варианте ошибку выдает, хотя если открыть действие - элементы видит.
И еще по умолчанию в действии начать цикл, получить Колличество Элементов и в действии получить атрибут - не ставит вот это в поле xpath (то что там должно быть по умолчанию, как обычно)
>XPATH>а без этого указателя находит один элемент а не 2
В любом случае во втором варианте баг какой то.
-
Вот и я столкнулся на днях с этой проблемой не работает XPath поиск элементов на странице. Решением было Xpath встроенной в BAS! Вот старая выжимка поиска и она к сожалению не работает.

-
Поиск атрибута @class каждого видимого элемента section: (класс general-section), not(@style)
Решение: (первые два видимых section не имеют span, и запрос для включения div в первой картинке)
//span[contains(@class, "value")]/parent::section[contains(@class, "general-section")]/@classВыводит все атрибуты @class всех (!) нужных section . Единственное из предложенных рабочее.
not или альтернатива =false работают в BAS, но очень проблемно. Хотя в браузере (не BAS'овском) ищет нормально.
Например:
//ul[contains(@class, "navbar-nav")]//a[not(@href="#")]нормально работает, но это для другой страницы и здесь получение текста, а не xml.
-Почему просто не поставить
not(@style)? - выведет в результат баннер.
-Под видимым подразумевается section без @style='display: none' -
Вы бы шаблон тестовый приложили с разными примерами. А то я вот вообще понять не могу как вы за раз обработали несколько элементов.
Я вам скинул шаблон в котором через not contains работает. Смотри выше.
-
(!) Причём, если [contains(@class, "value")] убрать и добавить исключение атрибута @style (будь то просто атрибут или его значение @style="..." или contains)
//span/parent::section[contains(@class, "general-section") and not(contains(@style))]/@classХоть мы и исключили скрытые section, но (!!!) только в запросе.
(Результат ответа BAS = нету большинства скрытых section, но в результате есть две лишние)
Почему? -Ответ очевиден, так как мы заходили с элемента span убрались те section, которые нам нужны и те которые нам не нужны, которые не содержат span.
Вывод: Те же самые запросы в браузере через инспектор элементов (!) работают и выдают правильные значение, которые мы и запрашиваем. Следовательно not/=false работает нестабильно, ведь, если браузер обрабатывает мои запросы, то ошибки в них нету.
-
@y4n23x said in Некорректно работает not/=false в XPath? Ищи другое решение!:
Поиск атрибута @class каждого видимого элемента section: (класс general-section), not(@style)
Решение: (первые два видимых section не имеют span, и запрос для включения div в первой картинке)
//span[contains(@class, "value")]/parent::section[contains(@class, "general-section")]/@classВыводит все атрибуты @class всех (!) нужных section . Единственное из предложенных рабочее.
not или альтернатива =false работают в BAS, но очень проблемно. Хотя в браузере (не BAS'овском) ищет нормально.
Например:
//ul[contains(@class, "navbar-nav")]//a[not(@href="#")]нормально работает, но это для другой страницы и здесь получение текста, а не xml.
-Почему просто не поставить
not(@style)? - выведет в результат баннер.
-Под видимым подразумевается section без @style='display: none'А вы как проверяли работу в BAS?

Скрипт: 2457.xml