使用php的简单HTML文件解析器
我有一个我无法解决的特殊问题。我搜索了每一个教程或表格条目,但没有成功完成我需要做的事情。因此,我的HTML文件:使用php的简单HTML文件解析器,php,html,file,parsing,domdocument,Php,Html,File,Parsing,Domdocument,我有一个我无法解决的特殊问题。我搜索了每一个教程或表格条目,但没有成功完成我需要做的事情。因此,我的HTML文件: <html> <head>**SOMETHING HERE**</head> <body> <div> <table> <thead> <tr><th>TEXT/NUM IS HERE</th><th>TEXT/NUM IS
<html>
<head>**SOMETHING HERE**</head>
<body>
<div>
<table>
<thead>
<tr><th>TEXT/NUM IS HERE</th><th>TEXT/NUM IS HERE</th><th>TEXT/NUM IS HERE</th></tr>
</thead><tbody>**SOMETHING HERE**</tbody></tfoot>**SOMETHING HERE**</tfoot>
</table>
</div>
</body>
</html>
但是我仍然会犯很多错误,并且找不到一个方法来做到这一点。是否有任何方法可以简单地完成此任务,当然也可以用于父元素中的每个元素
谢谢。
<?php
$html = new file_get_html('file.html');
$th = $html->find('thead th');
$array = array();
foreach($th as $text)
$array[] = $th->innertext;
?>
这使用了可以找到的简单HTML Dom解析器
这使用了简单的HTML Dom解析器,可以找到该解析器使用:
$html=textContent;
}
打印(数据);
使用:
$html=textContent;
}
打印(数据);
如果您想让它保持与您现有的样式相同(从而了解您做错了什么),请尝试以下方法:
$file = "index.html";
$dom = new DOMDocument();
$dom->loadHTMLfile($file);
$oTHeadList = $dom->getElementsByTagName('thead');
foreach( $oTHeadList as $oThisTHead ){
$oThList = $oThisTHead->getElementsByTagName('th');
foreach( $oThList as $oThisTh ) {
echo $oThisTh->nodeValue . "\n";
}
}
基本上,“getElementsByTagName”返回一个节点列表而不是一个节点,因此您必须在它们上循环才能到达各个节点
此外,在HTML中,您有一个结束的tfoot
,而不是开始的,如果您使用您提供的HTML文档进行测试,那么head标记中的**此处的某物**
将导致抛出警告(以及任何其他无效HTML)
如果要在加载时抑制警告,可以添加一个“@”,但在代码中过多地添加该符号不是一个好主意
@$dom->loadHTMLfile($file);
如果你想让它保持与你所拥有的一样的风格(从而了解你做错了什么),试试以下方法:
$file = "index.html";
$dom = new DOMDocument();
$dom->loadHTMLfile($file);
$oTHeadList = $dom->getElementsByTagName('thead');
foreach( $oTHeadList as $oThisTHead ){
$oThList = $oThisTHead->getElementsByTagName('th');
foreach( $oThList as $oThisTh ) {
echo $oThisTh->nodeValue . "\n";
}
}
基本上,“getElementsByTagName”返回一个节点列表而不是一个节点,因此您必须在它们上循环才能到达各个节点
此外,在HTML中,您有一个结束的tfoot
,而不是开始的,如果您使用您提供的HTML文档进行测试,那么head标记中的**此处的某物**
将导致抛出警告(以及任何其他无效HTML)
如果要在加载时抑制警告,可以添加一个“@”,但在代码中过多地添加该符号不是一个好主意
@$dom->loadHTMLfile($file);
getElementsByTagName。元素。不是元素,而是元素。它返回手册中指定的值。您需要遍历这个.getElementsByTagName。元素。不是元素,而是元素。它返回手册中指定的值。您需要迭代这个过程。