0

我在 PHP 中使用 SimpleHTMLDom 库,并且能够从我的 HTML 数据中获取节点。例如,我有一个 html 数据如下:

<html>
<body>
<table>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
</table>
</body>
<html>

我正在使用解析代码:

foreach($html->find('td') as $element)
echo $element->plaintext . '<br>'; 

但是这段代码给出的结果为:

One<br/>
Two<br/>
Three<br/>

我想要的是我想要变量 $one 中的结果“One”,$two 中的“Two”和 $3 中的“Three”。问题是我如何在特定变量中获取特定的表列元素。我想遍历而不考虑 ID 或类。就像我想在 HTML 数据中获得第三次出现的标记一样。谢谢。SIMPLEHTMLDOM.sourceforge.com 手册无法理解。

4

2 回答 2

2

find()方法接受第二个可选参数:元素的索引

echo $html->find('td', 2);

输出:

nb1:如果设置了index,则返回第N个元素对象,否则返回对象数组。

nb2:参数从零开始,表示第一个元素的索引是0

您还可以使用数组来访问您的元素:

$elements = $html->find('td');
echo $elements[2];

输出:

文档:http ://simplehtmldom.sourceforge.net/manual_api.htm

于 2013-10-31T08:32:08.183 回答
1
echo getElementByIndex(3); //whatever element you are looking for.

function getElementByIndex($indexOfElement) {
    $i = 1; //or 0 depending on starting list index
    foreach($html->find('td') as $element) {
        $i++;
        if ($i == $indexOfElement)
        return $element->plaintext . '<br>';
    } 
}
于 2013-10-31T08:13:39.870 回答