2017-01-11 17 views
-1

私は、この値(AAA、BBB、CCC .....)からデータベースを作りたいなhtmlファイルからデータベースを作成する方法は?

 <tr> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       aaa 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       bbb         
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       ccc 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       ddd 
      </td> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       eee 
      </td> 
     </tr> 
     <tr> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       xxx 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       vvv         
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       bbb 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       nnn 
      </td> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
       hhh 
      </td> 
     </tr> 

など、多くの<tr>のタグを含むHTMLファイルを持っています。
このタグを分離して正しい値を選択するにはどうすればよいですか?
私はこの選択にphpを使用したいと思います。

+0

あなたはHTMLを解析し、解析した値に基づいてクエリを生成できます。 – user1336827

+0

ブラウザのコンソールでJavaScriptを実行すると、一度に1行ずつテーブルを移動し、そのセルを取得できます。結果を配列に、コンソールをconsole.logに配列します。配列をコピーし、データベースに挿入できるバックエンドで実行します。 – Ultimater

+0

http://stackoverflow.com/questions/1403087/how-can-i-convert-an-html-table-to-csvこれはCSVに変換することができますし、データベースにインポートしたりPHPを書くのは簡単ですCSVにアクセスするためのファイル –

答えて

0

最初に、htmlページをxlsファイルに変換し、libreoffice calcを使用してCSVファイルに変換しました。

次に、私はCSVをmysqlテーブルにインパクトしました。このテーブルは私が必要とするほど良くはありませんでした。私はいくつかのPHPコードを使用し、データベースを読み込んで、新しいテーブルに書き直しました。 今、私はHTMLファイルからきれいで便利なDBを持っています。

+0

あなたはこの答えを受け入れられた答えとしてマークすれば、あなたのPHPコードを少なくとも共有するべきです。私は誰もあなたの答えがこのvageの説明で間違っているかどうかを実際に検証する方法を見ていない... – Jeff

0

ファイルが適切なXMLの場合は、XPathを使用して要素を繰り返し処理できます。

$content = <<<EOT 
<html> 
    <tr> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    aaa 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    bbb 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    ccc 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    ddd 
      </td> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    eee 
      </td> 
     </tr> 
     <tr> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    xxx 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    vvv 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    bbb 
      </td> 
      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    nnn 
      </td> 

      <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
    hhh 
      </td> 
     </tr> 
</html> 
EOT; 
$xml = new SimpleXmlElement($content); 
$result = $xml->xpath("//td"); 
$values = array(); 
foreach($result as $node) { 
    $values[] = trim((string)$node); 
} 
var_dump($values); 

データを抽出した後、データベースに接続するためにmysqli_connectを使用することができますし、mysqli_queryは、テーブルにデータを挿入するクエリを実行します。

+0

残念ながら、それはxmlではありません。それが何らかの種類のXMLパーサーであれば助けてくれるかもしれません。私は自分の質問にhtmlファイルのソースをコピーし、それは通常のhtmlページです。 – mrmrn

+0

@mrmrn、コメントする前に提案されたコードを試しましたか? –

+0

ほとんどの(X)HTMLファイルはXMLとして解析できます。コードはサンプルと完全に連携しています。 – Jeff

0

このコードは、あなたの質問でHTMLを正確にあなたがからデータを抽出したいものであるので、私は次のようにデータを抽出するためにラインインデントや改行を使用する前提としています

$content = <<<EOT 
    <html> 
     <tr> 

       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     aaa 
       </td> 
       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     bbb 
       </td> 
       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     ccc 
       </td> 
       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     ddd 
       </td> 

       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     eee 
       </td> 
      </tr> 
      <tr> 

       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     xxx 
       </td> 
       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     vvv 
       </td> 
       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     bbb 
       </td> 
       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     nnn 
       </td> 

       <td class="parsehlisttable_alteritemstyle" style="text-align: right;"> 
     hhh 
       </td> 
      </tr> 
    </html> 
    EOT; 


$lines = explode("\n", $content); 
foreach($lines as $line) 
{ 
    if(trim($line) == trim(strip_tags($line)) && $line != '') 
    { 
    $line = trim($line); 
    $mydata[] = $line; 
    } 
} 

foreach($mydata as $data) 
{ 
    mysql_query("INSERT INTO .... VALUES (NULL, '" . $data . "') "); 
} 

幸運

関連する問題