解析页面HTML输出

时间:2010-09-27 15:12:30

标签: asp.net


我想知道解析HTML页面输出的一种(或多种)方法。我想检测HTML上的一些模式,这些模式将发送到客户端并记录一些信息(如果存在)。

2 个答案:

答案 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等。