Использование XPath для получения строк между и внутри тегов - PullRequest
0 голосов
/ 04 апреля 2019

Супер новый в XPath, так что прости меня, если я наткнулся через термины.Я использую IMPORTXML() в документе Google для получения информации с веб-страницы.В основном я снимаю для того, чтобы превратить это

enter image description here

в

enter image description here

Что я не могу понять, так это как получить информацию между узлами <br> и извлечь строку из узла <a>.Я пробежал путь =IMPORTXML($A$1, "//p/b[starts-with(text(), '"& $A4 &"')]/following-sibling::text()[1]"), чтобы получить 1 за Время каста, но не дальше.

Конечная цель состоит в том, чтобы сделать это для примерно десятка различных значений на странице и циклически проверять около 500 веб-страниц, отсюда и ячейки в формуле.Буду признателен за любую помощь.


Раздел с углубленным разъяснением

Использование XPath и Google Sheet Я пытаюсь автоматически создать отформатированный макрос roll20 для каждого заклинания заклинателей.список.Например, Список заклинаний шамана Я использовал //tr/td[1]/a[@href] и //tr/td[1]/a/@href, чтобы создать рядом столбцы с именами заклинаний и их соответствующими URL-адресами.enter image description here Затем на другой странице я могу скопировать и вставить весь список заклинаний класса и использовать Vlookup, чтобы получить связанные URL-адреса при сохранении секционированных таблиц организованного уровня следующим образом (обратите внимание, что имена заклинаний с гиперссылкой богатытекст, так что внутренний URL-адрес невидим для IMPORTXML, следовательно, дополнительный шаг).enter image description here

С одним классом, имеющим более 500 заклинаний, конечной целью является создание серии IMPORTXML, которая просматривает URL заклинания и извлекает соответствующие данные из этого конкретногораздел.Для этого примера я использую Arcane Mark .

enter image description here

Конечная цель - использовать IMPORTXML для получения каждой важной категории, такой как Школа, Время каста, Цель, Эффект, Область, Диапазон,и т. д. Поместите их в соответствующие столбцы и просмотрите написанную мной конкатенацию и перетяните все различные части в одну большую отформатированную строку, совместимую с шаблоном макроса roll20, чтобы она выглядела как &{template:default} {{Name=Arcane mark}} {{School=Universal}} {{Casting Time=1 Standard Action}} {{Components=V,S}} {{Range=Touch}} {{Effect=One personal rune or mark, all of which must fit within 1 sq. ft.}} {{Duration=Permanent}} {{Saving Throw=None}} {{Spell Resistance=No}}

1 Ответ

0 голосов
/ 22 апреля 2019
=ARRAYFORMULA(REGEXEXTRACT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(ARRAY_CONSTRAIN(
 IMPORTDATA("http://www.d20pfsrd.com/magic/all-spells/a/arcane-mark"),1000,5), 
 "where Col1 contains 'School'", 0)),,999^99)), A10&"\</b>\ (.+)\;"))

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...