我有一张包含许多<tr>
标签的表格。在每个<tr>
中,有4个<td>
标记。在第一个td
中,我有一个<a>
标记,现在我需要将href
值和第三个<td>
值存储在数组中。
这是我的代码
<tr>
<td><a href="http://www.example.com">Some name</a></td>
<td>2009</td>
<td>United States</td>
<td> abc, xyz</td>
</tr>
---------------------
---------------------
<tr>
<td><a href="http://www.example10.com">Some name</a></td>
<td>2010</td>
<td>India</td>
<td> abc, xyz</td>
</tr>
现在,我正在收集所有的href值,我不知道如何获得第3个td值并同时存储在数组中。我收集href的代码是
$d = new DOMDocument();
@$d->loadHTML( $contents );
$a = $d->getElementsByTagName("a");
$i = 0;
foreach ( $a as $element ) {
$element->getAttribute('href');
}
请帮帮我。提前谢谢!
答案 0 :(得分:0)
$dom = new DOMDocument();
@$dom->loadHTML( $contents );
//get 1 table only
$node = $dom->getElementsByTagName("table")->item(0);
//$nodeA = $node->getElementsByTagName('a');
$nodeTr = $node->getElementsByTagName('tr')->item(2)
//foreach ( $nodeA as $element ) {
//echo $element->getAttribute('href');
//}
echo $nodeTr->nodeName,':', $nodeTr->nodeValue;
答案 1 :(得分:0)
将此用于您的foreach
循环
alert(document.getElementsByTagName("td")[2].innerHTML);
O / P:美国,印度所有细节都在第3 TD
答案 2 :(得分:0)
感谢大家的建议。我终于得到了预期的输出。
$d = new DOMDocument();
$d->validateOnParse = true;
@$d->loadHTML($contents);
$xpath = new DOMXPath($d);
$table = $xpath->query("//table/tr");
foreach ($table as $row) {
$a_val = $row -> getElementsByTagName('a')->item(0)->getAttribute('href');;
$td_val = $row -> getElementsByTagName('td')->item(2)->nodeValue;
$data.= "{$a_val} - {$td_val}\n";
}