我在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”在变量$ 1中,“Two”在$ 2中,“Three”在$ 3中。 问题是如何在特定变量中获取特定的表列元素。无论身份证或班级,我都想横穿。就像我想要在HTML数据中第3次出现标记一样。谢谢。 SIMPLEHTMLDOM.sourceforge.com手册是不可理解的。
答案 0 :(得分:2)
find()
方法接受第二个可选参数:元素的索引。
echo $html->find('td', 2);
输出:
三
nb1:如果设置了 index ,则返回第N个元素对象,否则返回对象数组。
nb2:参数为零,表示第一个元素的索引为0
您还可以使用该数组访问您的元素:
$elements = $html->find('td');
echo $elements[2];
输出:
三
答案 1 :(得分: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>';
}
}