2009-12-10 6 views
10

私は内側から説明テキストを取得するために、HTMLの敏捷性パックを使用しようとしている:StackOverflowの上HTML敏捷性パック

<meta name="description" content="**this is the text i want to extract and store in a string**" /> 

誰か少し前、私はHTMLAgilityPackを使用して提案しました。しかし、私はどのように使用するのかわかりません。私が見つけたドキュメンテーション(ダウンロードに含まれているドキュメントを含む)はすべて無効なリンクを持っているため、ドキュメントを見ることができません。

誰かが私にこれを解決するのを手伝ってもらえますか?

+1

私は混乱している - あなたはHtmlAgilityPackかどう構築してきましたか?それはビルドしない例ですか?またはコアDLL?後者の場合、あなたは何を参照しましたか? –

+0

Marcに感謝します。私は私の質問を編集し、さらに混乱を避けるためにその部分を削除しました。それについて今考えると、その特定の部分は本当に私の質問に相対的ではなく、むしろ質問をしている理由を言うための情報のabitです。 –

+0

私はdllファイルに私のアプリケーションで参照を追加することができました。だから私は "htmlagilityパックを"使用することができます。 –

答えて

16

使用方法はXmlDocumentと非常によく似ています。幅広い概要についてはXmlDocumentのMSDNを使用できます。 xpath構文(MSDN)を学ぶこともできます。

例:

HtmlDocument doc = new HtmlDocument(); 
doc.Load(path); // or .LoadHtml(html); 
HtmlNode node = doc.DocumentNode.SelectSingleNode("//meta[@name='description']"); 
if (node != null) { 
    string desc = node.GetAttributeValue("content", ""); 
    // TODO: write desc somewhere 
} 

GetAttributeValueの二番目の引数はデフォルト属性が見つからない場合に返されます。

+0

'node.GetAttributeValue(" content "、" ");'で使用される2番目の文字列引数(空のもの)は何ですか? – Alex

+0

@AlexW - 私は現時点でそのライブラリを手にする必要はありません。パラメータとは何ですか? –

+0

パラメータ名に不明...後で定義パスに従います。ここで答えてくれてありがとう、v便利です。 – Alex

0

公共の文字列HtmlAgi(文字列のURL、文字列キー) {

var Webget = new HtmlWeb(); 
    var doc = Webget.Load(url); 
    HtmlNode ourNode = doc.DocumentNode.SelectSingleNode(string.Format("//meta[@name='{0}']", key)); 

    if (ourNode != null) 
    { 


      return ourNode.GetAttributeValue("content", ""); 

    } 
    else 
    { 
     return "not fount"; 
    } 

} 
関連する問題