2015-11-03 105 views
1

表:使用PHP获得HTML表格行标签的价值

<table class="secondary"> 
<tr><td>BB:</td><td>112</td></tr> 
<tr><td>CC:</td><td>99</td></tr> 
<tr><td>DD:</td><td>1</td></tr> 
</table> 

比如我想这个表的第三排。

我知道如何使用ID,像摆脱div标签值:

$doc = new DomDocument(); 
$doc->loadHTMLFile('http://www.results.com'); 
$thediv = $doc->getElementById('result'); 
echo $thediv->textContent; 

,但我们怎样才能从表行标签值是多少?

+0

这取决于。如果您的示例表实际上是相关的,那么您可以做的最好的方法是找到类为“secondary”的表,但要求a)您实际上想要查看该类中标记中的所有表,或者b)你后面的表格是该类别中唯一的表格。如果这两个都不是真的,那么你会遇到问题。 –

+0

示例内容不包含“DIV”。 – Twisty

回答

0

您可以使用DomXpath http://php.net/manual/en/class.domxpath.php

(假设在这个例子中,你的表是带有class = “次要” 页面上的第一个表)

例如:

<?php 

$doc = new DomDocument(); 
$doc->loadHTMLFile("filename.html"); 

$xpath = new DomXpath($doc); 
$row = $xpath->query('//table[@class="secondary"][1]/tr[3]')->item(0); 

// Get the html of the third row: 
echo $doc->saveHTML($row); 

// Get the values from the td's for the third row 
foreach ($row->childNodes as $td) { 
    echo sprintf("nodeName: %s, nodeValue: %s<br>", $td->nodeName, $td->nodeValue); 
}