2010-04-02 55 views
0

我正在使用web客户端类来从网页的HTML数据。现在我想从HTML数据中获得完整的href标签和标题。最初我使用循环,Felling效率低下,我切换到regExp,但dint得到了有效的解决方案。在c中的html数据中获取href标签#

他的最初代码:

for (int i = 0; i < htmldata.Length - 5; i++) 
{ 
    if (htmldata.Substring(i, 5) == "href=") 
    { 
    n1 = htmldata.Substring(i + 6, htmldata.Length - (i + 6)).IndexOf("\""); 
    Sublink = htmldata.Substring(i + 6, n1); 
    var absoluteUri = new Uri(baseUri, temp); 
    n2 = htmldata.Substring(i + n1 + 1, htmldata.Length - (i + n1 + 1)).IndexOf("<"); 
    subtitle = htmldata.Substring(i + 6 + n1 + 2, n2 - 7); 
    } 
} 

此代码得到一些像这样的链接。

/l.href.replace(new RegExp(

/advanced_search?hl=en&q=&hl=en& 

和标题这样

onclick=gbar.qs(this) class=gb2>Photos 

")+"q="+encodeURIComponent(b)})}i.qs=n;function o(a,b,d,c,f,e){var g=document.getElementById(a);if(g){var 

哪些是绝对无效。 请为我提供获取有效的相关href链接和标题的正确代码。

回答

1

使用HTML Agility pack解析HTML你,那么你可以使用XPath表达式来选择页面和相关数据的所有链接。

试图自己解析HTML是容易出错和脆弱的,正如您已经发现的那样。