假设有下面这样一段 html 代码,它是一个常见的数据表格,现在我们要获取单元格里面的内容。
<table> <thead> <tr> <th>姓名</th> <th>学号</th> <th>学分</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>201505047</td> <td>52</td> </tr> <tr> <td>李四</td> <td>201502072</td> <td>65</td> </tr> </tbody> </table>
很多 html 解析器会使用 XPath 去查找元素,其实 XPath 在 html 的使用上并不是很流行。操作 html 的代码,一般是用 JavaScript 写得多,JavaScript 查找元素一般用的是 css 选择器。css 选择器的做法,来源于 css 样式表,只要你写过前端代码,就不会像使用 XPath 那样要学习一种新的表达方式。Less.Html 就是使用 css 选择器来查找元素的。在这个例子中,可以这样写:
foreach (Element i in q("td")) { Console.WriteLine(i.textContent); }
Less.Html 最大程度模仿了 jQuery 的语法。我觉得 jQuery 操作 html 文档十分的方便,而且 jQuery 的函数设计符合直觉,学习曲线比较平缓。通俗地说,就是很好上手。当然,在上面这个例子枚举选择的元素的时候,在 JavaScript 里面不能使用 foreach,而要使用 for,foreach 在 JavaScript 里面的应用面很窄。
运行结果如下:
本示例代码:GitHub