0

私はこのhtmlを持っています

<div class="postrow firs">
        <h2 class="title icon">
            This is the title
        </h2>
        <div class="content">
            <div id="post_message_1668079">
                <blockquote class="postcontent restore ">
                <div>Category</div>
                                         <div>Authour: Kim</div>
                    line 1<br /> line2
                </blockquote>
            </div>
        </div>
    </div>      <div class="postrow">
        <h2 class="title icon">
            This is the title
        </h2>
        <div class="content">
            <div id="post_message_1668079">
                <blockquote class="postcontent restore ">
                <div>Category</div>
                    line 1<br /> line2
                </blockquote>
            </div>
        </div>
    </div>

クラス「postrow」を持つ各divから次のものを抽出したいのですが、<div class="postrow first">. したがって、「最初」のクラスは私の関心事ではなく、最初に「postrow」が必要なだけです。

  1. クラスタイトルのタグ内のコンテンツ
  2. 「blockquote」タグの HTML。ただし、このタグを含む div はありません。

私が試したコード:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml("http://localhost/vanilla/");
            List<string> facts = new List<string>();
            foreach (HtmlNode li in doc.DocumentNode.SelectNodes("//div[@class='postrow']"))
            {
                facts.Add(li.InnerHtml);
                foreach (String s in facts)
                {
                    textBox1.Text += s + "/n";
                }
            }
4

1 に答える 1

1

あなたのコードには、html をパスではなく文字列として指定する必要があるという問題があります。

doc.LoadHtml("http://localhost/vanilla/");

代わりは

var request = (HttpWebRequest)WebRequest.Create("http://localhost/vanilla/");
String response = request.GetResponse();

doc.loadHtml(response);

解析されたhtmlを繰り返します

于 2013-07-15T13:16:16.140 に答える