0

我有一张有很多<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 值,我不知道如何获取第三个 td 值并同时存储在数组中。我收集href的代码是

        $d = new DOMDocument();
        @$d->loadHTML( $contents );
        $a = $d->getElementsByTagName("a");
        $i = 0;
        foreach ( $a as $element ) {
           $element->getAttribute('href');
        }

请帮助我。提前致谢!

4

3 回答 3

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;
于 2013-10-08T07:06:29.793 回答
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";  
        }
于 2013-10-08T08:49:00.000 回答
0

foreach在你的循环中使用它

alert(document.getElementsByTagName("td")[2].innerHTML);

O/P : 美国,印度所有细节在第 3 位TD

于 2013-10-08T07:45:07.563 回答