Получить содержимое внутри тега <title> - PullRequest
0 голосов
/ 27 февраля 2012

Я занимаюсь разработкой веб-приложения с использованием ASP.Net 4.0.Я пытаюсь прочитать метаданные, а также текст внутри тега.Я могу получить значение метатега, но не текст внутри простого тега.Возвращает значение, если оно находится внутри метатега, в противном случае - нет.Но я бы хотел получить и метатег, и тег <title>.

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Убедитесь, что в вашем заголовке есть 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 />");
    }
  }
}
0 голосов
/ 27 февраля 2012

Вы можете использовать этот метод для достижения желаемого.

Вы должны добавить 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");

Returnstest title

...