【问题标题】:Reading String as HTML in c# and obtain Values of Elements by class在c#中将字符串读取为HTML并按类获取元素的值
【发布时间】:2013-11-23 15:12:00
【问题描述】:

我在 c# MVC 控制器中有一个字符串,它是 HTML。

例如:<html>...<head>...</head><body>...<div class="someClass">...</div><div class="someClass">...</div><div class="someClass">...</div></body></html>

现在我想获取 Class = someClass 的所有元素的值并将它们放在一个字符串数组中。如果不使用字符串操作函数,这可能吗?目前我正在使用这样的字符串操作

string str = above String;
if (str.Contains(@"<div class=""someClass"">"))
{
str = str.Remove(0, str.IndexOf(@"<div class=""someClass"">" + 22));
// add the text in array until </div> and move to next element

我确信在 c# 中有一种方法。有人可以指导我正确的方向吗?

注意:HTML 字符串不是来自文件。

注意:这不是 Javascript 问题。虽然我很想在 Controller 中为此使用 Javascript。

【问题讨论】:

  • 为什么要将 HTML 从控制器传递到视图?你这样做是在破坏所有 MVC 模式!
  • @Fals 我没有将任何字符串从控制器传递到视图。用户向我传递了一个 url,我使用 System.Net.HttpWebRequest 从中获取 Html。现在我需要从这个 Html 中提供某些值来使用。

标签: c# asp.net-mvc


【解决方案1】:

我建议使用HtmlAgilityPack 来解析 HTML 字符串。

这是一个类似于您所问的问题:

Parsing HTML page with HtmlAgilityPack

【讨论】:

    【解决方案2】:

    您可以使用 HtmlDocument 类在 C# 中操作 HTML。

    来自 MSDN HtmlDocument Class:

    提供对 WebBrowser 控件托管的 HTML 文档的顶级编程访问。

    那里有一个例子。您可以使用此类访问和编写 html 元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多