У меня возникла проблема соскабливания страницы с тяжелой таблицей с DOMXpath.
Макет действительно уродливый, то есть я пытаюсь получить содержимое из таблицы внутри таблицы в таблице. Используя Firebug FirePath, я получаю для элемента таблицы следующий путь:
html/body/table/tbody/tr[3]/td/table[1]/tbody/tr[2]/td[1]/table[1]/tbody/tr[3]/td[4]
Теперь, после бесконечных экспериментов, я узнал, что с отдельной таблицей мне нужно удалить тег «tbody», чтобы он работал. Но этого недостаточно для таблиц в таблицах. Итак, мой вопрос: как лучше всего получать контент из таблиц в таблицах в таблицах?
Я загрузил файл, который я пытаюсь очистить здесь: 1
я столкнулся с той же проблемой, что и ваш, сбрасывая источник сложного и плохо отформатированного html, где я хочу получить значения в таблице внутри других таблиц.
я пришел с приближением взгляда на ту часть, которую я хочу получить с помощью ряда функций вроде этого:
function parse_html() {//gets a specific part of the table i chose to extract the contents $query = $xpath->query('//tr[@data-eventid]/@data-eventid'); //gets the table i want $this->parse_table(); } function parse_table() {// $query = $xpath->query('//tr[@data-eventid="405412"]/td[@class="impact"]/span[@title]/@title');...etc//extracts the content of the table $this->parseEvaluate(); } function parseEvaluate(){ ...verifying values if correct }
просто давая идею ..
Как насчет:
//*[contains(text(),"GRABME")]
Я знаю, что это, вероятно, не то, что вы хотите, но вы понимаете. Определите шаблон и используйте этот шаблон для построения xpath.