2012-02-27 83 views
0

我正在開發一個使用ASP.Net 4.0的Web應用程序。我正在嘗試讀取元數據以及標籤內的文本。 我能夠獲取元標記值,但不能獲取簡單標記中的文本。如果它位於元標記內,則返回值,否則返回值。但是我想獲取meta標籤和<title>標籤。在<title>標籤內提取內容

+0

你的問題是不明確的,你可以用一個例子解釋一下嗎? – 2012-02-27 08:16:35

+1

如果您試圖解析HTML(我想這就是您要做的),請嘗試[Html Agility Pack](http://htmlagilitypack.codeplex.com/),它可以爲您節省大量工作。 – 2012-02-27 08:36:16

回答

0

你可以使用這種方法來實現你想要的。

您必須添加using System.Text.RegularExpressions;到命名空間

protected string GetTagText(string source, string tag) 
{ 
    var regexStr = string.Format("(?<=<{0}>).*(?=</{0}>)", tag); 
    Regex regex = new Regex(regexStr, RegexOptions.IgnoreCase); 
    if (regex.IsMatch(source)) 
    { 
     return regex.Match(source).Value; 
    } 

    return null; 
} 

使用像

GetTagText("<title>test title</title>", "title"); 

回報test title

1

要確保你已經RUNAT = 「服務器」 在你頭上的標籤,像這樣:

<head runat="server"> 

,那麼你就可以用代碼來訪問meta標籤背後是這樣的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    foreach (Control cnt in Page.Header.Controls) 
    { 
    if (cnt is HtmlMeta) 
    { 
     HtmlMeta meta = cnt as HtmlMeta; 
     Response.Write("Meta tag name: " + meta.Name + ", content: " + meta.Content + ", http-equiv:" + meta.HttpEquiv + "<br />");   
    } 

    if (cnt is HtmlTitle) 
    { 
     HtmlTitle tit = cnt as HtmlTitle; 
     Response.Write("Title : " + tit.Text + "<br />"); 
    } 
    } 
} 
+1

+1因爲勇敢地爲你的變量命名! ;-) – 2012-02-27 08:47:13

+0

:))好吧,英語不是我的母語,我沒有意識到,因爲我現在不能改變它,因爲我會失去我的贊同 – 2012-02-27 09:09:26

+0

也許只是我的髒兮兮的心,大聲笑..無論如何不要擔心我的贊成會堅持,你的答案是正確的,好的。 – 2012-02-27 09:19:13