我正在使用Simple HTML从表中获取数据并需要帮助

时间:2009-09-17 13:37:12

标签: php

对不起那些可怜的冠军球员,但我是谁。我有一张桌子:

<table class="gsborder" cellspacing="0" cellpadding="2" rules="cols" border="1" id="d00">
        <tr class="gridItem">
                <td>Code</td><td>0adf</td>
        </tr><tr class="AltItem">
                <td>CompanyName</td><td>Some Company</td>
        </tr><tr class="Item">
                <td>Owner</td><td>Jim Jim</td>
        </tr><tr class="AltItem">
                <td>DivisionName</td><td> </td>
        </tr><tr class="Item">
                <td>AddressLine1</td><td>9314 W. SPRING ST.</td>
        </tr>
</table>

我正在使用以下代码来获取数据:

  $foo = $html->getElementById("d00")->childNodes(1)->childNodes(1);

这个问题是我用我的数据得到两个<td></td>标签。有没有办法只抓取没有标签的原始数据?

另外,这是从我的表中获取数据的正确方法吗?

2 个答案:

答案 0 :(得分:3)

尝试使用:

$foo = $html->getElementById("d00")->childNodes(1)->childNodes(1)->plaintext;

或innertext。

// Example
$html = str_get_html("<div>foo <b>bar</b></div>"); 
$e = $html->find("div", 0);

echo $e->tag; // Returns: " div"
echo $e->outertext; // Returns: " <div>foo <b>bar</b></div>"
echo $e->innertext; // Returns: " foo <b>bar</b>"
echo $e->plaintext; // Returns: " foo bar"

取自:http://simplehtmldom.sourceforge.net/manual.htm

根据经验,无论您使用哪种DOM API,一旦找到了您想要获取数据的元素,访问它们包含的文本节点需要更多的工作。

答案 1 :(得分:2)

使用strip_tags获取原始文本。

http://us.php.net/manual/en/function.strip-tags.php

所以:

$foo = strip_tags($html->getElementById("d00")->childNodes(1)->childNodes(1));