|
|
|
|
|
для: OLi
(20.07.2013 в 01:45)
| | А в каком ухе у меня сейчас звенит?
Ваш вопрос ровно такой же. Получить в коллекции элементов или обратиться к одному единственному?
Проверить значение атрибута элемента - getAttribute(name), получить элемент по id - getElementById и читайте примечание. И это потому, что данная объектная модель основана на XML парсере, а HTML, это хоть и близко, но не совсем это.
В сети есть готовые классы позволяющие комфортно работать с html документом на основе объектной модели, найдите и работайте, если вам трудно разобраться с тем, что есть в штатном. | |
|
|
|
|
|
|
|
для: OLi
(19.07.2013 в 23:09)
| | а если я хочу получить tr таблицы с id="bob"? | |
|
|
|
|
|
|
|
для: confirm
(19.07.2013 в 07:23)
| | Большое спасибо и уважение! | |
|
|
|
|
|
|
|
для: OLi
(18.07.2013 в 21:40)
| |
<?
$doc = new DOMDocument();
$doc->loadHTML('<div class="pc-data-cab_table_block_container" ... </div>');
$a = array();
$doc = $doc->getElementsByTagName('tr');
for($i=1, $k=$doc->length; $i<$k; $i++) {
$e = $doc->item($i)->getElementsByTagName('td');
$a[] = array('number'=>$e->item(0)->nodeValue, 'volume'=>$e->item(1)->nodeValue, 'code'=>$e->item(2)->nodeValue);
}
print_r($a);
|
| |
|
|
|
|
|
|
|
Хочу получить из каждой <tr> 3 ячейки <td>
Первую ячейку с индексом 0, вторую с 1, третью с 2
И занести все это в массив, так чтоб в $result[0] были все значения ячеек с индексом 0 - всех tr строк и тд
<?
$lines = $xpath->query("//table[@id='cab_table'] //tr");
$result = array();
foreach($lines as $line) {
for($j=0; $j<=3; $j++) {
$tds_{$j} = $xpath->query('//td['.$j.']', $line);
$tds_{$j} = $xpath->query('//td['.$j.']', $line);
$tds_{$j} = $xpath->query('//td['.$j.']', $line);
$count = $tds_{$j}->length;
for($i=0; $i<$count; $i++){
$result['number'][] = $tds_{$j}->item($i)->nodeValue;
$result['volume'][] = $tds_{$j}->item($i)->nodeValue;
$result['code'][] = $tds_{$j}->item($i)->nodeValue;
}
}
?> }
|
HTML такой:
<div class="pc-data-cab_table_block_container" style="overflow:auto">
<div id="cab_table_block" style="width:100%;overflow:auto">
<table id="cab_table" cellpadding="0px" cellspacing="0px" style="width:100%;overflow:auto">
<tr id="cab_table_tr_top">
<th id="cab_table_left">Номер счета</th>
<th>Объем</th>
<th id="cab_table_right">РЎСѓРјРјР° РєРѕРјРјРёСЃСЃРёРё</th>
</tr>
<tr class="cab_table_tr2">
<td class="cab_table_left1">510169</td>
<td style='width:130px'>0.04</td>
<td class="cab_table_right1">2.07</td>
</tr>
<tr class="cab_table_tr1">
<td class="cab_table_left1">1193683</td>
<td style='width:130px'>0.23</td>
<td class="cab_table_right1">0.00</td>
</tr>
<tr class="cab_table_tr2">
<td class="cab_table_left1">2159860</td>
<td style='width:130px'>1.06</td>
<td class="cab_table_right1">51.54</td>
</tr>
<tr class="cab_table_tr1">
<td class="cab_table_left1">8070080</td>
<td style='width:130px'>1.76</td>
<td class="cab_table_right1">147.80</td>
</tr>
<tr class="cab_table_tr2">
<td class="cab_table_left1">8079297</td>
<td style='width:130px'>19.25</td>
<td class="cab_table_right1">884.85</td>
</tr>
</table>
</div>
</div>
|
Но выходит не то что надо | |
|
|
|
|