我是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中的内容:
$ret = array();
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($html);
//$doc->saveHTMLFile('textbox.php');
$text = $doc->getElementsByTagName('tr');
foreach ($text as $tag){
$ret[] = $doc->saveHtml($tag);
echo $doc->saveHtml($tag);
}我不知道为什么回显的值是整个文档,而不是tr中的值。
其次,我也想得到这些td标签之间的值,如5:14 AM,EUR等,但我不知道如何做到这一点。
请原谅新手的问题..
诚挚的问候
发布于 2012-12-17 12:36:08
$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";
}
}发布于 2012-12-17 12:32:33
将一个元素传递给saveHtml会生成元素outerHTML,而不是它的innerHTML,因此您可以获得它的标签属性和所有内容。当然,您需要运行PHP>=5.3.6。
td之间的值可以通过$td->firstChild->nodeValue;或仅通过$td->textContent;获得,其中$td是所讨论的<td>。
https://stackoverflow.com/questions/13908212
复制相似问题