2014-09-24 3 views
2

Я пытаюсь получить доступ к информации из первой и второй таблицы на веб-сайте. Используя приведенный ниже код, я могу получить доступ только к первой таблице. Какой синтаксис я использую для перехода на вторую или первую таблицу?Dom Parse multiple tables

$url = "http://iditarod.com/race/2014/"; 

//new dom object 
$dom = new DOMDocument(); 

//load the html 
$html = $dom->loadHTMLFile($url); 

//discard white space 
$dom->preserveWhiteSpace = false; 

//the table by its tag name 
$tables = $dom->getElementsByTagName('table'); 

//get all rows from the table 
$rows = $tables->item(0)->getElementsByTagName('tr'); 

ответ

1

Чтобы получить второй стол, используйте item(1). Чтобы получить таблицу nth, используйте n - 1.

getElementsByTagName('table') возвращается DOMNodeList который содержит все elements с именем "table" в документе. Метод DOMNodeList item() возвращает DOMNode из этого списка в данном индексе, с индексом элемента, начиная с 0.

Таким образом, чтобы получить все строки из второй таблицы:

$rows = $tables->item(1)->getElementsByTagName('tr'); 
+0

Спасибо за помощь Павла. – user3044244