如何在tr标签之间提取数据?

时间:2012-03-19 15:16:55

标签: php screen-scraping webpage

我有一个CMS网站,在Joomla中制作。有关于旅行的文章,我在那里约会。日期在每页的表格中。问题是如何从文章中的表继承提取数组之类的日期,并将其复制到联系表单的下拉框中?这是一个例子,

<tr> 
  <td>08.03.2012.</td> 
  <td>22.03.2012.</td>
</tr>

如何提取这些日期并以联系方式放入下拉框? 谢谢!

2 个答案:

答案 0 :(得分:1)

name分配给<td>(所有人的名字相同):

<tr> 
  <td name="NAME_YOUVE_CREATED">08.03.2012.</td> 
  <td name="NAME_YOUVE_CREATED">22.03.2012.</td>
</tr>

声明一个没有任何option项目的下拉列表,其中包含ID(假设为“date_dropdown”):

<tr>
    <select id="date_dropdown">
    </select>
</tr>

然后使用jQuery获取值并将其放在下拉列表中:

$('td[name="NAME_YOUVE_CREATED"]').each(function() {
    //Obtain date value from <td>
    var dateToExtract = $(this).text();

    //Place value in dropdown
    $('select#date_dropdown').after('<option value="' + dateToExtract  + '"> ' + dateToExtract + ' </option>');
});

答案 1 :(得分:0)

你可以使用DOM(Document Object Model)这样做:

$test = "<tr> 
  <td>08.03.2012.</td> 
  <td>22.03.2012.</td>
</tr>";

$DOM = new DOMDocument;
$DOM->loadHTML($test);

$items = $DOM->getElementsByTagName('td');

echo '<select name="date">';
for ($i = 0; $i < $items->length; $i++)
{
  echo '<option value="'.$i.'">'.$items->item($i)->nodeValue.'</option>';
}
echo '</select>';

请注意,这是一个基本示例,但不知道您要执行的操作的详细信息。上面的代码将为您输出以下HTML:

<select name="date"><option value="0">08.03.2012.</option><option value="1">22.03.2012.</option></select>