0

我有一张看起来像这样的 trs 表。

<tr> 
  <td><a href="http://www.mysite.com">Link</a></td>
  <td>value 2</td>
  <td>value 3</td>
  <td>value 4</td>
  <td>value 5</td>
</tr>

我正在使用 xPath 来全选<tr>并遍历它们。

foreach($xpathResult as $item){
  //print the href of the first td
  //print the nodeValue of the second td
  //print the nodeValue of the 3rd td
  //print the nodeValue of the 4th td
  //print the nodeValue of the 5th td
}

如何打印第一个 td 的 href 和nodeValue之后每个 td 的 href?有firstChildand lastChild,但我如何到达中间 s?我可以使用firstChild->nextSiblingfirstChild->nextSibling->nextSibling但没有更简单的方法吗?

4

2 回答 2

1

只需在 上使用循环childNodes,如下所示:

foreach( $trs as $tr) {
    echo $tr->firstChild->firstChild->attributes->getNamedItem( 'href')->value;
    foreach( $tr->childNodes as $k => $td) {
        if( $k == 0) continue; // Skip the first one
        echo $td->nodeValue . "\n";
    }
}
于 2012-07-10T20:50:54.070 回答
0

为什么不直接选择td?

$results = $dom->xpath('//tr/td');
foreach($results as $td) {
   echo $td->nodeValue;
}
于 2012-07-10T20:38:10.810 回答