我想知道解析HTML页面输出的一种(或多种)方法。我想检测HTML上的一些模式,这些模式将发送到客户端并记录一些信息(如果存在)。
答案 0 :(得分:2)
您需要的一切都在
中 Page.Render
方法,覆盖它并在那里做你想做的事。
protected override void Render(HtmlTextWriter writer)
{
// do your stuff here
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlTextWriter); // <-- render the page into the htmlTextwriter
// the htmlTextwriter connects trough the stringWriter to the stringBuilder
string theHtml = stringBuilder.ToString(); // <---- html captured in string
//---------------------------------------------
//do stuff on theHtml here
//---------------------------------------------
writer.Write(theHtml); // <----write html with the original writer
}
答案 1 :(得分:1)
这完全取决于“解析”的含义,但 HTML Agility Pack 之类的东西可以从HTML文档中创建类似XML的结构 - 基本上创建一个合适的{{3 }} 数据结构。您甚至可以将其直接转换为XML,使用LINQ等。