Less.Html 示例一:获取嵌套元素中的正确内容

这个示例来源于这个帖子 http://bbs.csdn.net/topics/392175840,需要获取内容的 html 如下:

<table>
  <tr>
    <td>姓名</td>
    <td>学号</td>
    <td>学分</td>
  </tr>
  <tr>
    <td>张三</td>
    <td>
        <table>
            <tr>
              <td>201505047</td>
            </tr>
          </table>
      </td>
    <td>52</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>
        <table>
            <tr>
              <td>201502072</td>
            </tr>
          </table>
    </td>
    <td>65</td>
  </tr>
</table>

楼主通过循环 td 元素的方式来获取内容,但是因为学号的内容是嵌套在 td 的 table 里面的,会被获取到两次。

如果使用 Less.Html,可以这样写:

foreach (Element i in q("td"))
{
    if (!q(i).find("table").hasElement)
    {
        Console.WriteLine(i.textContent);
    }
}

代码是很简短的,同样是循环,在循环里面检查一下 td 是否有嵌套的 table 就行了。Less.Html 最大程度上模仿了 jQuery 的语法,为查找元素提供更多的便利。运行结果如下:

我原来在帖子的回答中,并没有处理重复的学号,现在更正这一点。

本示例代码:GitHub    码云

广州必简信息科技有限公司 版权所有 粤ICP备15047625号-2