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 |
| … | … |
