如何使用php和dom获取第一,第二和第三TD值

我有这样的一张桌子:

<tr>
    <td><font color="#000066">ADANA</font></td>
    <td><font color="#000066">SEYHAN</font></td>    
    <td><font color="#000066">ZÜBEYDE HANIM ANAOKULU</font></td>    
    <td><font color="#000066">KURTULUŞ MAH.64011 SOK. NO:1</font></td>    
    <td><font color="#000066">(322) 453 10 60</font></td>    
    <td><font color="#000066">(322) 459 19 77</font></td> 
</tr>

我想了解td的内容.但是我无法解决.

    $xml = new DOMDocument();
    $xml->validateOnParse = true;
    $xml->loadHTML($data);

    $xpath = new DOMXPath($xml);
    $xpath = new DOMXPath($xml);
    $table =$xpath->query("//*[@id='dgKurumListesi']")->item(0);

    $rows = $table->getElementsByTagName("tr");

foreach ($rows as $row) {
    $cells = $row -> getElementsByTagName('td',0);
    foreach ($cells as $cell) {
        echo $cell->nodeValue; //il ismi
    }

}

我想要这样:$value [‘firsttd’],$value [‘secondtd’],$value [‘thirdtd’]

解决方法:

您可以使用for将结果限制为td的前3个项目:

$value = array();
$table = $xpath->query("//*[@id='dgKurumListesi']")->item(0);
$rows = $table->getElementsByTagName("tr");
foreach ($rows as $row)
{
    $cells = $row->getElementsByTagName('td');
    // Keep in mind that the elements index start at 0
    // so we want 0, 1, 2 to get the first 3.
    for ($i = 0; $i < 3; $i++)
    {
        if (is_object($cells->item($i)))
            $value[] = $cells->item($i)->nodeValue;
    }
}
print_r($value);

Live DEMO.

您可以使用以下命令输出结果$value:

foreach ($value as $item)
{
    echo $item, "<br />\n";
}

根据您的评论,您可以使用像这样的多维数组:

for ($r = 0; $r < $rows->length; $r++)
{
    if (!is_object($rows->item($r)))
        continue;

    $cells = $rows->item($r)->getElementsByTagName('td');
    for ($i = 0; $i < 3; $i++)
    {
        if (is_object($cells->item($i)))
            $value[$r][$i] = $cells->item($i)->nodeValue;
    }
}

foreach ($value as $item)
{
    echo $item[0], ',', $item[1], ',', $item[2], "\n";
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...