我有一张表格,看起来像这样。
<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和之后每个td的nodeValue
?有firstChild
和lastChild
,但我如何到达中间位置?我可以使用firstChild->nextSibling
和firstChild->nextSibling->nextSibling
,但是不是更方便吗?
答案 0 :(得分: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";
}
}
答案 1 :(得分:0)
为什么不直接选择td?
$results = $dom->xpath('//tr/td');
foreach($results as $td) {
echo $td->nodeValue;
}