5

PHP Simple HTML DOM Parser を使用して、外部ファイルの HTML を取得しようとしています。ファイルにはテーブルが含まれており、目標は、特定のデータ コンテンツを持つ有効なセルを見つけて、次の兄弟セルのデータを取得することです。このデータは、PHP 変数に配置する必要があります。

How to parse and process HTML/XML with PHP?のような記事で見つかった調査と情報に基づいています。, A 要素の href 属性を取得する ,データのスクレイピング: PHP シンプルな HTML DOM パーサーそしてもちろんPHP シンプルな HTML DOM パーサー マニュアルいくつかの結果を出すことができましたが、間違った方向に進んでいる可能性があります。

表の行は次のようになります。

<tr>
<td>fluff</td>  
<td>irrelevant</td> 
<td>etc</td>   
<td><a href="one">Hello world</a></td>                        
<td>123.456</td> 
<td>fluff</td>          
<td>irrelevant</td>   
<td>etc</td>
</tr>

私が達成しようとしているのは、「Hello world」を含むテーブル セルを見つけて、次の td セルから番号を取得することです。次のコードは、そのテーブル セルを見つけてその内容をエコーし​​ますが、次のセルのデータを取得するためにそれを目印として使用しようとして失敗しました...

$html = file_get_html("http://site.com/stuff.htm");
$e = $html->find('td',0)->innertext = 'Hello world';
echo $e;

したがって、最終的には、上記の例では、123.456 の値を何らかの方法で PHP 変数に入れる必要があります。

ご協力いただきありがとうございます!

4

2 に答える 2

2

単純な html dom パーサーを使用:

$str = "<table><tr>
<td>fluff</td>  
<td>irrelevant</td> 
<td>etc</td>   
<td><a href=\"one\">Hello world</a></td>                        
<td>123.456</td> 
<td>fluff</td>          
<td>irrelevant</td>   
<td>etc</td>
</tr></table>";

$html = str_get_html($str);

 $tds = $html->find('table',0)->find('td');
 $num = null;
 foreach($tds as $td){

     if($td->plaintext == 'Hello world'){

        $next_td = $td->next_sibling();
        $num = $next_td->plaintext ;    
        break; 
     }
 }

 echo($num);
于 2013-04-02T18:37:09.453 に答える