5

c#.net2.0コード内の文字列変数にhtmlを保存しています。以下に例を示します。

<div class="track">
    <img alt="" src="http://hits.guardian.co.uk/b/ss/guardiangu-feeds/1/H.20.3/30561?ns=guardian&pageName=Hundreds+feared+dead+in+Haiti+quake%3AArticle%3A1336252&ch=World+news&c3=GU.co.uk&c4=Haiti+%28News%29%2CDominican+Republic+%28News%29%2CCuba+%28News%29%2CBahamas+%28News%29%2CNatural+disasters+and+extreme+weather+%28News%29%2CEnvironment%2CWorld+news&c6=Rory+Carroll%2CHaroon+Siddique&c7=10-Jan-13&c8=1336252&c9=Article&c10=News&c11=World+news&c13=&c25=&c30=content&h2=GU%2FWorld+news%2FHaiti" width="1" height="1" />
</div>
<p class="standfirst">
    • Tens of thousands lose homes in 7.0 magnitude quake<br />
    • UN headquarters, schools and hospitals collapse
</p>
<p>
    René Préval, the president of Haiti, has described the devastation after last night's earthquake as "unimaginable" as governments and aid agencies around the world rushed into action.
</p>
<p>
    Préval described how he had been forced to step over dead bodies and heard the cries of those trapped under the rubble of the national parliament. "Parliament has collapsed. The tax office has collapsed. Schools have collapsed. Hospitals have collapsed," <a href="http://www.miamiherald.com/582/story/1422279.html" title="he told the Miami Herald">he told the Miami Herald</a>. "There are a lot of schools that have a lot of dead people in them." Préval said he thought thousands of people had died in the quake.
</p>

最初の2つの段落を元の文字列のサブストリングとして出力したいだけです。

誰かが助けることができますか?

4

4 に答える 4

4

HtmlAgilityPackをご覧ください。

必要なデータを抽出するために使用できるHTMLを解析するための非常に強力なAPIを公開します。

于 2010-01-13T18:16:37.177 に答える
4

私は最後にこの関数を使用しました...

  private string GetFirstParagraph(string htmltext)
        {
            Match m = Regex.Match(htmltext, @"<p>\s*(.+?)\s*</p>");
            if (m.Success)
            {
                return m.Groups[1].Value;
            }
            else
            {
                return htmltext;
            }
        }
于 2010-01-14T11:04:28.660 に答える
0

JavaScriptを使用していますか?pタグでexplodeを使用して、配列の1つの部分でdiv +最初のパラを取得し、それぞれの要素で各pタグを取得できます。

于 2010-01-13T17:44:05.417 に答える
-1

HTMLをwebbrowser変数にロードし、DOMを使用してノードをトラバースし、必要なカスタムロジックを引き出すメソッドをいくつか作成できます。このチュートリアルをチェックしてください。

チュートリアルでその方法を説明するのではなく、コードビハインドでWebブラウザを作成する方法のスニペットを次に示します。

using System.Windows.Forms;

WebBrowser _Browser = null;
string _Source = "Your HTML goes here";

_Browser = new WebBrowser();
_Browser.Navigate("about:Blank");
_Browser.Document.OpenNew(true);
_Browser.Document.Write(_Source);
于 2010-01-13T17:58:30.643 に答える