我有一大堆 HTML,其中只是一堆:
<li id="entry-c7" data-user="ThisIsSomeonesUsername">
<img width="28" height="28" class="avatar" src="http://very_long_url.png">
<span class="time">6:07</span>
<span class="username">ThisIsSomeonesUsername</span>
<span class="message">This is my message. It is nice, no?</span>
</li>
一遍又一遍地重复了大约十万次(当然,内容不同)。这一切都是通过检索包含所有这些的元素从 HTMLDocument 中获取的。该文档是从 Windows 窗体中的 WebBrowser 检索的。这看起来像:
HtmlDocument document = webBrowser1.Document;
HtmlElement element = document.GetElementById(chatElementId);
假设“chatElementId”只是一些已知的 ID。我想做的是检索“时间”(本例中为 6:07)、“用户名”(ThisIsSomeonesUsername)和“消息”(这是我的消息......等)中的内容。消息部分几乎可以包含任何内容,包括进一步的 html(如链接、图像等),但我希望保持所有内容不变。我本来打算用正则表达式来解析使用上面方法检索到的元素的InnerHtml,但是显然这会带来宇宙的毁灭。那我应该怎么做呢?
编辑:人们一直在建议 Html Agility Pack,那么有没有一种简单的方法可以在不使用完整 HTML 源的情况下在 Html Agility Pack 中执行此操作?我不确定这个类之外的其余 html 是否都那么好......但是我是否应该只传递整个 html 呢?