簡體   English   中英

如何從一個html文件創建一個數據庫?

[英]how to make a database from a html file?

我有一個 HTML 文件,其中包含許多<tr>標簽,例如

       <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>

我想從這個值(aaa,bbb,ccc .....)創建一個數據庫。
如何分離此標簽並選擇正確的值?
我想使用 php 進行此選擇。

如果文件是正確的 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運行查詢將數據插入表中。

此代碼假定您問題中的 HTML 正是您要從中提取數據的 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 . "' ) ");
}

祝你好運

首先,我將 html 頁面轉換為 xls 文件,然后使用 libreoffice calc 將其轉換為 CSV 文件。

然后我將 CSV 導入 mysql 表。 但是這張桌子沒有我需要的那么好。 所以我使用了一些 php 代碼並讀取了數據庫並將其重新寫入新表上。 現在我從 HTML 文件中獲得了一個干凈且有用的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM