获取<title>标记</title>中的内容

时间:2012-02-27 08:02:00

标签: asp.net html metadata meta-tags

我正在使用ASP.Net 4.0开发Web应用程序。我试图读取标签中的元数据和文本。 我能够获取元标记值,但不能获取简单标记内的文本。如果它在元标记内,则返回一个值,否则返回值。但我想同时获取元标记和<title>标记。

2 个答案:

答案 0 :(得分:1)

确保头标记上有runat =“server”,如下所示:

<head runat="server">

然后您将能够访问代码隐藏的元标记,如下所示:

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 :(得分: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