2

画像が含まれていないcontinue;場合は必要です。TD

私はこれを試しました:

if(!$image){continue;}

しかし、それはうまくいきませんでした。

<?php
    /////////////////////////////////////////////////////////////////////
        $html='
            <table>
                <tr>
                    <td colspan="2">
                        <span>green</span>
                        <img src="green.gif" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <span>yellow</span>
                        no image !!
                    </td>
                    <td>
                        <span>red</span>
                        <img src="red.gif" />
                    </td>
                </tr>
            </table>
            <table>
                <tr>
                    <td>
                        <span>black</span>
                        <img src="black.gif" />
                    </td>
                </tr>
            </table>
        ';
    /////////////////////////////////////////////////////////////////////
        $dom = new DOMDocument();
        $dom->loadHTML($html);
        $xpath = new DomXPath($dom);
    /////////////////////////////////////////////////////////////////////
        $query = $xpath->query('.//table/tr/td');
        for( $x=0,$results=''; $x<$query->length; $x++ )
        {
            $x1=$x+1;

            $color = $query->item($x)->getElementsByTagName('span')->item(0)->nodeValue;
            $image = $query->item($x)->getELementsByTagName('img');
            if(!$image){continue;} 
            $image = $image->item(0)->getAttribute('src');

            $results .= "color $x1 is : $color - and- image $x1 is : $image<br/>";
        }
        echo $results;
    /////////////////////////////////////////////////////////////////////
?>

どうすればこれに取り組むことができますか?

4

2 に答える 2

2

で試してみてください

.//table/tr/td[img]

または(loadHTMLはHTMLスケルトンを追加するため):

/html/body/table/tr/td[img]

http://codepad.viper-7.com/TsMVxeを参照してください

于 2011-08-14T07:24:34.790 に答える
2

試す:

if(!count($image)){continue;}

しかし、ゴードンが提案したように、クエリを変更する方がはるかに効率的です。

于 2011-08-14T07:29:54.947 に答える