2

Simple HTML DOM を使用して HTML ドキュメントからデータを抽出していますが、助けが必要な問題がいくつかあります。

  1. で始まる行でif ($td->find('a'))、href とアンカー ノードのコンテンツを個別に抽出し、それらを個別の変数に配置します。ただし、コードは機能しません (以下のコードの echoes からの出力を参照してください)。

    これを行う最善の方法は何ですか?私の目的は、後で情報から XML ドキュメントを作成することなので、正しい順序で情報が必要になることに注意してください。

  2. リンクは、さまざまな車に関する詳細情報 (「最高速度」、「価格」など) を含むページにつながります。これらの情報も抽出して別の変数に入れたいと考えています。これらのページのデータを取得するにはどうすればよいですか?

    <?php
    include 'simple_html_dom.php';
    
    $html = new simple_html_dom();
    $html = file_get_html('http://www.example.com/foo.html');
    
    $items = array();
    
    foreach ($html->find('table') as $table) {
        foreach ($table->find('tr') as $tr) {
    
            foreach ($tr->find('td') as $td) {
    
                if ($td->find('a')) {
                    $link = $td->find('a.href');
                    echo $link;  // empty
    
                    $text = $td->find('a.text');
                    echo $text; // Array
                }
                else {
                    echo 'Name: ' . $td;
                }
            }
        }
    }
    

HTML ドキュメントは次のようになります。

<div>
    <table>
        <tr>
            <td>
                <a href="car1.html" target="_blank">Car 1</a>
            </td>
            <td>
                Porsche
            </td>
        </tr>
        <tr>
            <td>
                <a href="car2.html" target="_blank">Car 2</a>
            </td>
            <td>
                Chrysler
            </td>
        </tr>
        ... and so on...
4

2 に答える 2