2012-07-07 116 views
0

如果有人能夠給我一個關於如何解析這種表格並以特定順序顯示結果的提示,我將非常感激。如何用php解析html表格

所以一段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> 

,問題是,我需要解析此表並輸出它以這種形式:

;名稱一;黑色; OO; - ;

; nameOne; black; 0; - ;

; nameOne; black; 2; - ;

所以基本上 - 名稱(從第一個表),顏色,大小,數量;每種顏色和尺寸。

我一直在試圖完成這個過去兩天,到目前爲止沒有運氣,所以我將不勝感激任何幫助! 謝謝!

回答

1

我更喜歡這個庫https://github.com/olamedia/nokogiri解析html數據。 說你想要這東西轉換成陣,在這裏你怎麼可以這樣做:

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

之後,你必須與所有屬性和節點陣列,看到print_r($my_table) 注意,$ big_html_string應該是整個HTML與<html>, <body>標籤!