Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML DOM文档解析_Php_Html_Dom_Domdocument - Fatal编程技术网

Php HTML DOM文档解析

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

我不熟悉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" 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";
  }
}