2012-02-27 19 views
0

私はASP.Net 4.0を使用してWebアプリケーションを開発しています。私はタグ内のテキストだけでなくメタデータも読み込もうとしています。 メタタグの値は取得できますが、単純なタグ内のテキストは取得できません。メタタグ内にある場合は値を返し、それ以外の場合は値を返します。しかし、メタタグと<title>タグの両方を取得したいと思います。<title>タグ内の内容を取得

+0

あなたの質問が明確ではないが、あなたは一例で説明できますか? –

+1

あなたがHTMLを解析しようとしているなら(あなたがやっていると思いますが)、[Html Agility Pack](http://htmlagilitypack.codeplex.com/)を試してみてください。 –

答えて

0

この方法を使用して、目的を達成することができます。あなたは

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

はこのように、あなたの頭のタグに= "server" をラナていることを確認してください名前空間にusing System.Text.RegularExpressions;を追加する必要が

<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

+1のようなあなたの変数に名前を付けるのに十分な勇気があれば+1! ;-) –

+0

:))英語は私の母国語ではありません。私はそれを実現しませんでした。私は自分のアップヴォートを緩めるので、これを今変更することはできません。 –

+0

多分、とにかく私のupvoteが固執する心配しないでください、あなたの答えは正しいと良いです。 –

関連する問題