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