Можно ли получить список всех элементов по xpath со страницы за раз, без циклов ?

Поддержка
  • @Bigma кубик "Xpath получить каждый xml", если ему скормить html-код, и указать например запрос "//a/@href", то он заполнит список href-ссылками.

  • @bigorat said in Можно ли получить список всех элементов по xpath со страницы за раз, без циклов ?:

    @Bigma если честно то не совсем понятен смысл. Если страница уже загрузилась то какая разница что из нее тянуть? Код страницы в переменную и парси как хочешь.

    Я за оптимизм :)

    Страница уже в памяти, плюс мы создаем переменную, то есть удваиваем память, плюс лишние действия.
    У меня в Xpath например используются ресурсы и переменные, Модуль Xpath почему то их есть не хочет, надо сначало загонять в переменную, потом использовать в Xpath. Получим список нужных.

    Моя задача была определить номер элемента в этом списке, после проделанных действий надо было ище циклом искать элемент в списке, при помощи регулярки ....

    Ну так себе путь Джедая :)

    Но вывернув себе мозг, я нашел простое решение:

    Чтобы узнать номер элемента на странице, оказывается есть прекрасные операторы Xpath

    preceding::
    и
    preceding-sibling::
    

    первый проверит все элементы без учета уровня, второй на том же уровне

    ВСЕ вуаля, нужная мне операция в одно действие (точнее два) получить колличество предшествующих элементов и прибавить 1

    Всем учить Xpath, когда делать нефига :)

    http://internetka.in.ua/xpath-start-part2/

    А вообще, @Fox согласись, не хватает галочки в действиях: Получить текст элемента, Получить код элемента, и Получить атрибут элемента. И галочка должна быть такая: Получить ВСЕ.

  • Прикольно, делишься решениями, а тебя минусят :)
    Че за мода то ?
    Хотел еще аплевел поделится, но пожалуй не буду.

  • В общем, чтобы еще не делать лишних телодвижений по прибавлению 1
    в Xpath можно сумировать элементы, делается это так например

    (self::dd, preceding::dd)
    

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

  • @Bigma Вам Минус, за точто не правы,вы Бигму прлсто так Обидели и он ли не пытался и считай дал ответ!!!
    Вы не Правы !!!

  • Я смотрю у кого то сегодня день не задался 😁 хорошего тебе настроения, мой любимый Хейтер 😉

  • Да нет, но когда помогаешь (про тебя в этом месте ) а ещё и чуть не крайний :)
    Я сам знаеш что тебя не знама ( но я человек наблюдительный, потому глупых вопросов не задаю ) :)))

  • @super84 я никого не обижал. Вопервых в топике было написано, что я и так эти варианты знаю. Читай внимательнее.

    Во вторых я всегда всем признателен, просто за участие в обсуждении, ведь именно отклик, наталкивает на поиск того или иного решения.

    Всем много денег, и хорошего настроения 🤗

  • @Bigma Об чём и мысля, пользуйтесь Поиском, всёж :)))

  • @super84 не всегда поиск даёт ответ. Я сутки искал как в javascript использовать xpath. С jquery нашел например, но они не работали.

    Форум тут вообще для чего?

    Правильно, для общения. Вообщем всех благ.

  • Кстати, особенность форума конкурента - там минусить нельзя, и никто, ни на кого не обижается.

  • @Bigma Но Суть то даёт и там уже сам Глобалиш и такие порокастыли, но рабочие, а им всем этого не Объяснишь и по сути то нах, конкурентов себе же кажд день,строим, не так ли :)))

  • @super84 суть в карме, все мы тут конкуренты, но представь пиратский бриг, на котором дерутся пираты между собой. Он утонет раньше, чем выйдет из порта. И все пираты вместе с ним 😉

  • @Bigma На Лолзе в авторегерах, тема, и ониж учатся с наших слов, а там стают Супер Кодерами, чуть ли.
    Я за себя знаю и тут никогда не Реклю, в моих словах и Скринах ( многих научил, чего мне fox и не ток он, я всегда ищю сам и втом и умней, скок повтарять, пользуйтесь ПОИСКОМ, а если вы Сформулировать Запрос не Можите, то нахрена вы мол за Гуж то это т Взялись
    Согласится Все, что есть Пословится, взялся за гуж, так тени мол уж )
    Один тут Спрашивает, как мол обойти Гугел, на Запросах и вот тепербь мы мчимся Регер ГуглаСчитай Делать.
    Хотя скок им не Толдыч, они Умней то более не станут ( станут на нас ещё )
    Мне тож не в Падел, но за меня Математику, да помогала МаМА и ей я блогодарен :)))
    Кто на меня Подписан и до талого Прочитает и тот Глупых, вопросов не будет плодить.

  • @super84 "умник" - а если бы никто не писал решений, то что бы ты нашел в поиске? Плюешь в колодец из которого пьешь.

    Я делюсь, в том числе, чтоб самому, при необходимости, найти давно забытое решение.

  • This post is deleted!
  • @super84 надо спать, так бывает, утром все наладится.

  • This post is deleted!
  • @Bigma said in Можно ли получить список всех элементов по xpath со страницы за раз, без циклов ?:

    В общем, чтобы еще не делать лишних телодвижений по прибавлению 1
    в Xpath можно сумировать элементы, делается это так например

    (self::dd, preceding::dd)
    

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

    С этим я поспешил, В хроме работает суммирование элементов, а в Басе нет. Видимо версия Xpath устарела.

    Но preceding:: работает :) а прибавить один не проблема.