/** * @return object .rows , .header */ public function scrape() { extract($this->help()); $rows = array(); $header = $this->header; foreach ($this->table->find('tr') as $key => $tr) { $tr = $jq($tr); // filter? foreach ($this->rowFilters as $rowFilter) { if ($rowFilter($tr, $key, $header !== NULL) === FALSE) { continue 2; } } // scrape the header (wenn er gesetzt ist parsen wir nicht, wenn er leer ist auch nicht) if ($header === NULL) { $header = array(); foreach ($tr->find('td,th') as $key => $th) { $value = $thConverter($jq($th), $key); $header[$key] = $value; } } else { // scrape a row $row = array(); foreach ($tr->find('td') as $key => $td) { $value = $tdConverter($jq($td), $key, array_key_exists($key, $header) ? $header[$key] : NULL); // somit geht sogar dass &$key benutzt wird $row[$key] = $value; } if ($this->useHeader) { $rows[] = array_combine($header, $row); } else { $rows[] = $row; } } } $table = (object) array('header' => $header, 'rows' => $rows); return $table; }
public static function parse(\DOMElement $package) { $jq = new jQuery($package); $package = new static($jq->attr('package_name')); $package->setLinksTotal((int) $jq->attr('package_linkstotal')); $package->setPercent((double) $jq->attr('package_percent')); $package->setSize($jq->attr('package_size')); $package->setLoaded($jq->attr('package_loaded')); $files = array(); foreach ($jq->find('file') as $file) { $files[] = JDownloaderFile::parse($file); } $package->setFiles($files); return $package; }
public function testRowHTML() { $this->gridPanel->addRow(array('row1:col1', 'row1:col2', 'row1:col3')); $this->gridPanel->addRow(array('row2:col1', 'row2:col2', 'row2:col3')); $this->gridPanel->addRow(array('row3:col1', 'row3:col2', 'row3:col3')); $trs = $this->test->css('table tr', $this->html = $this->gridPanel->html())->getJQuery(); foreach ($trs as $row => $tr) { if ($row === 0) { continue; } // skip header $tr = new jQuery($tr); $col = 1; foreach ($tr->find('td') as $td) { $td = new jQuery($td); // everything i right place? $this->assertEquals(sprintf('row%d:col%d', $row, $col), $td->text()); $col++; } $row++; } }