0

この種のテーブルを解析して特定の順序で結果を表示する方法について、誰かがヒントを教えてくれれば幸いです。

だから私が持っているhtmlの部分は

<table name="maintable" cellspacing="2" cellpadding="3" border="0" id="grid_block" width="100%" class="csm">
<tr class="shade" style="font-weight: bold">
    <td width="30%">Name</td>
    <td width="70%">NameOne</td>
</tr>
<tr class="shade" style="font-weight: bold">
        <td>Date</td>
        <td>2012-09-30</td>
</tr>
</table>
<br>
<table name="maintable" cellspacing=2 cellpadding=3 border=0 id="grid_block" width="100%" class="csm">
        <tr>
            <td colspan="12" align="center" bgcolor="#90ee90"><b>In Stock</b></td>
        </tr>
        <tr onmouseover="this.className = 'rowselected';" onmouseout="this.className = 'shade';">
            <td class="greenshade"><b>Color/Size</b></td>
            <td align="center" class="greenshade"><b>OO</b></td>
            <td align="center" class="greenshade"><b>0</b></td>
            <td align="center" class="greenshade"><b>2</b></td>
            <td align="center" class="greenshade"><b>4</b></td>
            <td align="center" class="greenshade"><b>6</b></td>
            <td align="center" class="greenshade"><b>8</b></td>
            <td align="center" class="greenshade"><b>10</b></td>
            <td align="center" class="greenshade"><b>12</b></td>
            <td align="center" class="greenshade"><b>14</b></td>
            <td align="center" class="greenshade"><b>16</b></td>
            <td align="center" class="greenshade"><b>18</b></td>
        </tr>
        <tr onmouseover="this.className = 'rowselected';" onmouseout="this.className = 'shade';">
                <td width='30%' ><b>black</b></td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
        </tr>
        <tr onmouseover="this.className = 'rowselected';" onmouseout="this.className = 'shade';">
                <td width='30%' ><b>nude</b></td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
                <td align="Center">-</td>
        </tr>

問題は、このテーブルを解析して次の形式で出力する必要があることです。

; nameOne; black; OO;-;

; nameOne; black; 0;-;

; nameOne; black; 2;-;

つまり、基本的に-名前(最初の表から)、色、サイズ、数量。すべての色とサイズに。

私はこの2日間これを達成しようとしてきましたが、今のところ運がないので、助けていただければ幸いです。ありがとうございました!

4

1 に答える 1

1

HTMLデータの解析には、このライブラリhttps://github.com/olamedia/nokogiriを好みます。これを配列に変換したいとします。これを行う方法は次のとおりです。

$saw = new nokogiri($big_html_string);
$my_table = $saw->get('table')->toArray();

その後、すべての属性とノードを含む配列が得られます。 print_r($my_table) $big_html_string は、<html>, <body>タグ付きの html 全体である必要があることに注意してください。

于 2012-07-07T13:38:42.947 に答える