Prose\FromBrowser::getTableContents PHP Метод

getTableContents() публичный Метод

------------------------------------------------------------------
public getTableContents ( $xpath )
    public function getTableContents($xpath)
    {
        // what are we doing?
        $log = usingLog()->startAction("get HTML table using xpath");
        // can we find the table?
        try {
            $tableElement = fromBrowser()->get()->elementByXpath($xpath);
        } catch (Exception $e) {
            // no such table
            $log->endAction("no matching table");
            throw new E5xx_ActionFailed(__METHOD__);
        }
        // at this point, it looks like we'll have something to return
        $return = [];
        // extract the headings
        $headings = [];
        $thElements = $tableElement->getElements('xpath', 'descendant::thead/tr/th');
        foreach ($thElements as $thElement) {
            $headings[] = $thElement->text();
        }
        // extract the contents
        $row = 0;
        $column = 0;
        $trElements = $tableElement->getElements('xpath', 'descendant::tbody/tr');
        foreach ($trElements as $trElement) {
            $column = 0;
            $tdElements = $trElement->getElements('xpath', "descendant::td");
            foreach ($tdElements as $tdElement) {
                if (isset($headings[$column])) {
                    $return[$row][$headings[$column]] = $tdElement->text();
                } else {
                    $return[$row][] = $tdElement->text();
                }
                $column++;
            }
            $row++;
        }
        // all done
        $log->endAction("found table with {$column} columns and {$row} rows");
        return $return;
    }