我正在计算HTML
表中每个唯一值的实例,并将结果返回到它自己的表中。该表是从用户的文本输入生成的。例如,用户输入可能如下所示:
Report 46 Bob Marley 4/20/2013 Summary: I shot the sheriff Case #32 User Error
Report 50 Billy The Kid 7/14/2013 Summary: I'm just a boy in a grown up world Case #33 User Experience
Report 51 Oscar The Grouch 10/10/2013 Summary: Refuse, reuse, recycle Case #33 User Experience
大空格是标签。
哪会回来:
<table>
<tr>
<td>Bob Marley</td><td>46</td><td>4/20/2013</td><td>Case #32</td><td>User Error</td>
</tr>
<tr>
<td>Billy The Kid</td><td>50</td><td>4/20/2013</td><td>Case #33</td><td>User Experience</td>
</tr>
<tr>
<td>Oscar The Grouch</td><td>51</td><td>10/10/2013</td><td>Case #33</td><td>User Experience</td>
</tr>
</table>
我需要做的是1)统计报告的数量,2)计算每个病例数出现的次数,2)并计算每个类别出现的次数,然后在下一页上显示,如下所示:
Number of reports:
3
Cases:
Case #33 - 2
Case #32 - 1
Categories:
User Experience - 2
User Error - 1
我正在寻找有关如何处理此问题的任何建议。我正在使用和学习Javascript / HTML(和jQuery),但是如果这些工具更合适的话,可以使用PHP,SQL等。
我正在考虑将表值传递给数组,然后使用for循环和regexes
计算唯一值,但我不确定这是否是最好的方法。
修改
我没有明确说明的另一个细节是,在将其转换为表格之前,我可以访问用户输入数据(即制表符分隔的文本)。因此,如果在将其转换为表格之前更容易计算相关值,请告知我们。
答案 0 :(得分:2)
就PHP而言,您可以将表格HTML存储到字符串中并将其加载到DOM解析器中。
http://simplehtmldom.sourceforge.net/
这是我们大多数涉及页面抓取的项目所使用的内容,尽管使用它们的函数从字符串中解析HTML也同样有效:
$html = str_get_html($yourHtmlString);
然后你可以遍历每个 tr ,然后从那里你可以查看每个 td 以添加到你的标签中。
即。要获得第三行的类别,您可以使用:
$html->find("table", 0)->find("tr", 2)->find("td", 4)->plaintext;
你可以循环遍历表格:
$reportCount = 0;
$reportCases = array();
foreach ($html->find("table", 0)->find("tr") as $tableRow) {
$reportCount++;
$reportCases[] = $tableRow->find("td", 1)->plaintext;
}
等。虽然当然也存储了所有其他必要的数据,然后根据需要将其格式化为表输出。