如何从html页面捕获文本

时间:2017-10-19 10:44:45

标签: php

我想从这个html页面部分中抓住“Bronze”这个词:

<tr  class="">
   <td align="left"  csk="Nikpai,Rohullah"><a href="/olympics/athletes/ni/rohullah-nikpai-1.html">Rohullah Nikpai</a></td>
   <td align="right" >25</td>
   <td align="left" ><a href="/olympics/summer/2012/TKW/mens-featherweight.html">Men's Featherweight</a></td>
   <td align="right"  csk="3">3T </td>
   <td align="left"  class=" Bronze" csk="1"><strong>Bronze</strong></td>
</tr>

我尝试了不同的代码,但我的意图失败了。许多尝试之一如下:

foreach($html4->find('td align="left" strong') as $tag4) {


                                 echo $prova =  $tag4->innertext . "\n";

                            }

其中html4是我必须处理的整个html页面。

1 个答案:

答案 0 :(得分:0)

使用以下代码,您可以获得类名“Bronze”

<?php 
$html='<tr  class="">
   <td align="left"  csk="Nikpai,Rohullah"><a href="/olympics/athletes/ni/rohullah-nikpai-1.html">Rohullah Nikpai</a></td>
   <td align="right" >25</td>
   <td align="left" ><a href="/olympics/summer/2012/TKW/mens-featherweight.html">Mens Featherweight</a></td>
   <td align="right"  csk="3">3T </td>
   <td align="left"  class=" Bronze" csk="1"><strong>Bronze</strong></td>
</tr>';


$dom = new DOMDocument();
@$dom->loadHTML($html);
foreach($dom->getElementsByTagName('td') as $link) {
        echo trim($link->getAttribute('class'),' ');            
}
?>

或者,如果您更喜欢节点值而不是类名,并且csk attribut始终为1:

foreach($dom->getElementsByTagName('td') as $link) {
    if ($link->getAttribute('csk')=="1"){
        echo $link->nodeValue;
    }
}