Как запарсить сложную таблицу на php?

Необходимо спарсить таблицу с colspan и rowspan в массив.
С rowspan = 2 получилось так

    $dom->loadHTML($html);
    $xpath = new DomXPath($dom);
    $nodes = $xpath->query("//table/tr");
    $arr = array();
    $ids = array();
    $lent = 5;
    for ($j = 0;$j < $lent;$j++)
    {
        $ids[] = 1;
    }
    for ($i = 1;$i <= $nodes->length;$i++)
    {
        $ar = array();
        for ($j = 0, $k = 0;$j < $lent;$j++)
        {
            if ($ids[$j] != 1)
            {
                $nn = $xpath->query("//table/tr[$i-1]/td[$j+1]");
                $nnn = $xpath->query("//table/tr[0]/td[0]/@rowspan");
                $ids[$j]--;
            }
            else
            {
                $k++;
                $nn = $xpath->query("//table/tr[$i]/td[$k]");
                $nnn = $xpath->query("//table/tr[$i]/td[$k]/@rowspan");
            }
            if (strlen($nnn->item(0)->nodeValue) != 0) $ids[$j] = (int)$nnn->item(0)->nodeValue;
            $ar[] = $nn->item(0)->nodeValue; //." - (".$nnn->item(0)->nodeValue.")";

        }
        array_push($arr, $ar);
    }

Когда rowspan больше двух или есть colspan, то код бесполезен :(
Как спарсить допустим такую таблицу

    <table>
        <tr>
            <td rowspan='3'>A</td>
            <td>B</td>
            <td colspan='2'>C</td>
        </tr>
        <tr>
            <td rowspan='3'>D</td>
            <td colspan='2'>E</td>
        </tr>
        <tr>
            <td>G</td>
            <td>F</td>
        </tr>
   </table>

В такой вид

   <table>
        <tr>
            <td>A</td>
            <td>B</td>
            <td>C</td>
            <td>C</td>
        </tr>
        <tr>
            <td>A</td>
            <td>D</td>
            <td>E</td>
            <td>E</td>
        </tr>
        <tr>
            <td>A</td>
            <td>D</td>
            <td>G</td>
            <td>F</td>
        </tr>
        <tr>
            <td></td>
            <td>D</td>
            <td></td>
            <td></td>
        </tr>
   </table>

Из Было
В Стало


Ответы (0 шт):