2010-01-13 2 views
5

Ich habe HTML in einer String-Variable in meinem C# .net 2.0-Code gespeichert. Unten ist ein Beispiel:Ausgabe der ersten zwei Absätze aus HTML als String gespeichert

<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> 

Ich möchte nur die ersten beiden Absätze als Teilzeichenfolge des Orginal ausgeben.

Kann jemand helfen?

Antwort

4

ich diese Funktion am Ende verwendet ...

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; 
      } 
     } 
0

Verwenden Sie JavaScript? Sie könnten explode für die p-Tags verwenden, um div + first para in einem Stück des Arrays und jedes der p-Tags in ihren jeweiligen Elementen zu erhalten.

0

Sie können einige Methoden schreiben, die den HTML-Code in eine Webbrowser-Variable laden und dann das DOM verwenden, um die Knoten zu durchlaufen und die gewünschte benutzerdefinierte Logik herauszuziehen. Überprüfen Sie diese tutorial.

Hier ist ein Ausschnitt aus wie die webbroswer im Code erstellen hinter anstatt, wie das Tutorial erfahren Sie, wie es zu tun:

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); 
3

am Html Agility Pack Werfen Sie einen Blick.

Es stellt eine sehr leistungsfähige API zum Parsen von HTML zur Verfügung, die verwendet werden kann, um die gewünschten Daten zu extrahieren.

+0

+1 Danke für den Link –

Verwandte Themen