Php HTML DOM文档解析
我不熟悉DOM文档。。 我有这个html:Php HTML DOM文档解析,php,html,dom,domdocument,Php,Html,Dom,Domdocument,我不熟悉DOM文档。。 我有这个html: <tr class="calendar_row" data-eventid="39657"> <td class="alt1 eventDate smallfont" align="center">Sun<div class="eventday_multiple">Dec 9</div></td> <td class="alt1 smallfont
<tr class="calendar_row" data-eventid="39657">
<td class="alt1 eventDate smallfont" align="center">Sun<div class="eventday_multiple">Dec 9</div></td>
<td class="alt1 smallfont" align="center">3:34am</td>
<td class="alt1 smallfont" align="center">USD</td>
</tr>
<tr class="calendar_row" data-eventid="39658">
<td class="alt1 eventDate smallfont" align="center">Sun<div class="eventday_multiple">Dec 10</div></td>
<td class="alt1 smallfont" align="center">5:14am</td>
<td class="alt1 smallfont" align="center">EUR</td>
</tr>
我不知道为什么回显的值是整个文档,而不是tr中的值
第二,我也想得到那些td标签之间的值,比如上午5:14,欧元,等等。但是我不知道怎么做
请原谅我的问题
向您致意传递一个元素以生成元素outerHTML而不是其innerHTML,这样您就可以得到它的标记属性及其所有内容。当然,您需要运行PHP>=5.3.6
td之间的值可以通过$td->firstChild->nodeValue获得
或只是$td->textContent
其中$td
是所讨论的
。传递一个元素以生成元素outerHTML而不是其innerHTML,因此您可以获得它的标记属性及其所有内容。当然,您需要运行PHP>=5.3.6
$doc = new DOMDocument();
$doc ->loadHTML("$html");
$tables = $doc->getElementsByTagName('table');
$table = $tables->item(0);//takes the first table in dom
foreach ($table->childNodes as $td) {
if ($td->nodeName == 'td') {
echo $td->nodeValue, "\n";
}
}
td之间的值可以通过
$td->firstChild->nodeValue获得
或只是$td->textContent
其中$td
是所讨论的
。对不起,我将如何使用$td->textContent;。。我不知道该把它放在哪里it@Vainglory07你真的不知道你想用它做什么,所以我说不出你会如何使用它。如果您不知道如何获取
s,请在tr上使用getElementsByTagName进行查找。对不起,我将如何使用$td->textContent;。。我不知道该把它放在哪里it@Vainglory07你真的不知道你想用它做什么,所以我说不出你会如何使用它。如果您不知道如何获取
s,请在tr上使用getElementsByTagName进行查找。请参阅我的编辑,如果这也不起作用,则您的$html可能错误。请参阅我的编辑,如果这也不起作用,则您的$html可能错误。
$doc = new DOMDocument();
$doc ->loadHTML("$html");
$tables = $doc->getElementsByTagName('table');
$table = $tables->item(0);//takes the first table in dom
foreach ($table->childNodes as $td) {
if ($td->nodeName == 'td') {
echo $td->nodeValue, "\n";
}
}