【问题标题】:How to get a part of HTML in C#如何在 C# 中获取 HTML 的一部分
【发布时间】:2012-09-11 05:55:06
【问题描述】:

请考虑这种情况:

我们有两个网页。一个简单的页面,其中包含一些控件和另一个页面 Execute 第一页并获得输出 HTML。例如:

StringWriter textWriter = new StringWriter();
HttpContext.Current.Server.Execute("Blinker.aspx", textWriter);
Label1.Text= Server.HtmlEncode(textWriter.ToString());

它会返回这个(例如):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
    <title> </title> 
</head> 
<body> 
<form method="post" action="Blinker.aspx" id="form1"> 
    <div class="aspNetHidden"> 
        <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZKwUTjEtU7qJweOD/x+Op0ROdM+jDqyILuizFGhjOJQj" /> 
    </div> 
    <div class="blink"> Some Test</div> 
</form> 
</body> 
</html> 

问题是如果我只想:

<div class="blink"> Some Test</div> 

如何从 C# 中的输出 html 中获取它?

谢谢

【问题讨论】:

  • 为什么不将 '' 提取到用户控件,然后只呈现该用户控件?
  • 因为其他人设计了该页面,现在他们无法更改它们

标签: c# asp.net html parsing c#-4.0


【解决方案1】:

试试HTMLAgilityPack

这是一个可爱的 HTML 解析器,通常为此推荐。它将采用格式错误的 HTML 并将其转换为 XHTML,然后是可遍历的 DOM,例如 XML 类。因此,对于您在野外找到的代码非常有用。

【讨论】:

    【解决方案2】:

    以下是选项

    1. 应用正则表达式从响应 HTML 中提取此文本
    2. 制作 XML 文档,遍历所有的潜水标签。

    【讨论】:

    【解决方案3】:
    HtmlElementCollection tData = wb.Document.GetElementsByTagName("div");
    
                foreach (HtmlElement td in tData)
                {
                    string name = "";
                    if (td.GetAttribute("classname") == "blink")
                    {
                        name = td.InnerText;
                    }
                }
    

    【讨论】:

      【解决方案4】:

      我们在其中一个项目中遇到过相同的情况。我建议RegexHTMLAgilityPack

      • 使用 Agilitypack,您可以使用 C# 代码从网页中过滤掉特定内容,并且您还可以在其中找到LINQ

      • 然后,如果您需要获取 Div 中的任何特定文本或其中的任何单个值,您可以使用 Regex。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 2011-04-11
        • 1970-01-01
        • 2014-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多