Я пытаюсь использовать domDocument и xpath для извлечения содержимого таблицы, включая атрибут href ссылок, которые находятся в некоторых ячейках. Следующий код рисует пробел.php domDocument xpath извлечь ссылки из таблицы
<?php
$url_content='<html>
<body>
<table class="txtable">
<tbody>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
<th>Col 4</th>
</tr>
<tr>
<td><a href="www.example1.com">link 1</a></td>
<td>31</td>
<td>34</td>
<td>Blue</td>
</tr>
<tr>
<td><a href="www.example2.com">link 2</a></td>
<td>41</td>
<td>44</td>
<td>Red</td>
</tr>
</tbody>
</table>
</body>
</html>';
$doc = new DOMDocument();
@$doc->loadHTML($url_content);
$finder = new DomXPath($doc);
$rows = $finder->query("//table[@class='txtable']/tbody/tr");
foreach ($rows->childNodes AS $row){
foreach($row->childNodes AS $cell){
if (($cell->nodeName == "td") OR ($cell->nodeName == "th")){
echo $cell->nodeValue."<br>";
} else {
echo $cell->getAttribute('href')."<br>";
}
}
}
Я боюсь, что не понимаю что-то основное о xpath или domDocument. Помогите оценить.
Я ожидаю, что для $ rows будет сбор строк, которые можно выполнить с помощью foreach. В отчетах эха должно отображаться содержимое каждого из них.
Если ребенок не «тд» или «е», в этом случае он должен быть «а», то я хочу повторить вне HREF атрибута
Я не подвожу вообще ничего в браузере
Если я бегу от PHP я получаю
PHP Уведомление: Неопределенный собственности: DOMNodeList :: $ ChildNodes в /var/www/follow/php/domtest.php на линии 35 PHP Warning: Invalid аргумент поставляются для Еогеасп () в /var/www/follow/php/domtest.php по строке 35
Пожалуйста, всегда описывают то, что вы хотите достичь, например, путем размещения ожидаемого результата. Также дайте любые предупреждения и/или сообщение об ошибке, которые происходят (и здесь они это делают). –
@Jens Дополнительная информация добавлена. Надеюсь, вы можете указать мне в правильном направлении. – anthonyc