>我有一个包含许多<tr>
标签的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>
我想从这个值(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 文件中有一个干净且有用的数据库。