I am using the SimpleHTMLDom library in PHP and i am able to fetch the nodes from my HTML data. For example i have a html data as below :
<html>
<body>
<table>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
</table>
</body>
<html>
and i am using the parsing code as :
foreach($html->find('td') as $element)
echo $element->plaintext . '<br>';
But this code gives result as :
One<br/>
Two<br/>
Three<br/>
What i want is that i want the result "One" in say variable $one, "Two" in $two and "Three" in $three. The problem is that how can i get a particular table column element in a particular variable. I want to traverse irrespective of ID or class. Like I want to get like 3rd occurrence of the tag in the HTML data. Thanks. The SIMPLEHTMLDOM.sourceforge.com manual is not understandable.
The find()
method accepts a second optional parameter: the index of the element.
echo $html->find('td', 2);
Output:
Three
nb1: if index is set, it returns the Nth element object, otherwise, return an array of object.
nb2: the parameter is zero based, it means that the the index of the first element is 0
You can also use the array to access to your element:
$elements = $html->find('td');
echo $elements[2];
Output:
Three
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>';
}
}