9.24 解析 HTML 文件,读出序表

 

解析 HTML 文件,读出序表。
从 HTML 文件中解析出成绩表,并统计每个学生的总分。

<html>
…
<table id="tfhover" class="tftable" border="1">
<tr><th>CLASS</th><th>STUDENTID</th><th>SUBJECT</th><th>SCORE</th></tr>
<tr><td>Class one</td><td>1</td><td>Math</td><td>77</td>
<tr><td>Class one</td><td>1</td><td>PE</td><td>69</td>
<tr><td>Class one</td><td>1</td><td>English</td><td>84</td>
<tr><td>Class one</td><td>2</td><td>Math</td><td>80</td>
<tr><td>Class one</td><td>2</td><td>PE</td><td>97</td>
…
</table>
…
</html>

使用了函数 s.htmlparse(tag: i:j) 获取 html 格式串 s 中第 i 个 tag 下的第 j 个文本。

脚本:

A
1 =file(“table.html”).read()
2 =A1.htmlparse(“table”:0)
3 =create(${A2(1).concat@c()})
4 =A3.record(A2.to(2,).conj())
5 =A3.groups(STUDENTID; sum(SCORE):TOTALSCORE)

A1 读取 html 文件
A2 使用 htmlparse() 函数解析 html 串,返回第一个 table 标签的全部内容
A3 用第一行标题创建一个序表
A4 将第二行开始的数据依次插入 A3 的序表中
A5 对学生成绩序表进行分组汇总,统计每位学生的总分数

运行结果:

STUDENTID TOTALSCORE
1 230
2 258
3 228