C# 解析HTML-如何从标记中获取数字?

C# 解析HTML-如何从标记中获取数字?,c#,browser,html-parsing,C#,Browser,Html Parsing,我正在开发一个与网站交互的Windows窗体应用程序 使用WebBrowser控件,我控制着网站,我可以使用以下命令遍历标记: HtmlDocument webDoc1 = this.webBrowser1.Document; HtmlElementCollection aTags = webDoc1.GetElementsByTagName("a"); 现在,我想从下面的标签中获取一个特定的文本: 像这里一样,我想得到244这个数字,它等于上面标记中分配给的,并将它保存到一个变量中以供进一

我正在开发一个与网站交互的Windows窗体应用程序

使用
WebBrowser
控件,我控制着网站,我可以使用以下命令遍历标记:

HtmlDocument webDoc1 = this.webBrowser1.Document;
HtmlElementCollection aTags = webDoc1.GetElementsByTagName("a");
现在,我想从下面的标签中获取一个特定的文本:


像这里一样,我想得到244这个数字,它等于上面标记中分配给的
,并将它保存到一个变量中以供进一步使用


我该怎么做呢?

你可以试着用“;”来拆分字符串值,然后将每个字符串按“=”排序,如下所示:

string aTag = ...;
foreach(var splitted in aTag.Split(';'))
{
   if(splitted.Contains("="))
   {
      var leftSide = splitted.Split('=')[0];
      var rightSide = splitted.Split('=')[1];
      if(leftSide == "assignedto")
      {
          MessageBox.Show(rightSide); //It should be 244
          //Or...
          int num = int.Parse(rightSide);
      }
   }
}
using System;

public class Program
{
    static void Main()
    {
        string href = @"issue?status=-1,1,2,3,4,5,6,7&
@sort=-activity&@search_text=&@dispname=Show Assigned&
@filter=status,assignedto&@group=priority&
@columns=id,activity,title,creator,status&assignedto=244&
@pagesize=50&@startwith=0";

        href = System.Web.HttpUtility.HtmlDecode(href);

        var querystring = System.Web.HttpUtility.ParseQueryString(href);

        Console.WriteLine(querystring["assignedto"]);
    }
}
另一个选项是使用正则表达式,您可以在此处进行测试:。有关正则表达式的更多信息:


希望有帮助

如果所有情况都与此类似,并且您不介意在Windows窗体应用程序中引用
System.Web
,则tou可以执行以下操作:

string aTag = ...;
foreach(var splitted in aTag.Split(';'))
{
   if(splitted.Contains("="))
   {
      var leftSide = splitted.Split('=')[0];
      var rightSide = splitted.Split('=')[1];
      if(leftSide == "assignedto")
      {
          MessageBox.Show(rightSide); //It should be 244
          //Or...
          int num = int.Parse(rightSide);
      }
   }
}
using System;

public class Program
{
    static void Main()
    {
        string href = @"issue?status=-1,1,2,3,4,5,6,7&
@sort=-activity&@search_text=&@dispname=Show Assigned&
@filter=status,assignedto&@group=priority&
@columns=id,activity,title,creator,status&assignedto=244&
@pagesize=50&@startwith=0";

        href = System.Web.HttpUtility.HtmlDecode(href);

        var querystring = System.Web.HttpUtility.ParseQueryString(href);

        Console.WriteLine(querystring["assignedto"]);
    }
}
这是一个简化的示例,首先需要提取
href
属性文本,但这并不复杂。拥有
href
属性文本,您可以利用它基本上是一个查询字符串,并重用.NET中已经解析查询字符串的代码

要完成此示例,要获取
href
属性文本,可以执行以下操作:

HtmlElementCollection aTags = webBrowser.Document.GetElementsByTagName("a");

foreach (HtmlElement element in aTags)
{
    string href = element.GetAttribute("href");
}

但是如何将couplete标记作为stringtry-foreach(HtmlElement-HtmlElement-in-aTags){string-aTag=HtmlElement.OuterHtml;}@Joao抱歉地说,这似乎有点复杂,是否有更简单的方法来实现这一点,除非添加一系列假设,我不会用任何其他方式来做,我可以问一下为什么您会觉得这样复杂吗?文档中的
可能有一个
href
值与您作为示例给出的格式不一致。