如何同时从表中获取href值和th值

时间:2013-10-08 07:01:53

标签: php html

我有一张包含许多<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');
        }

请帮帮我。提前谢谢!

3 个答案:

答案 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";  
        }