Dator > Hur konvertera HTML till texten i C #

  • Hur konvertera HTML till texten i C #


  • Det finns många situationer där du behöver för att extrahera textinnehåll från en HTML- sida . Detta är vanligtvis en fråga om att ta bort HTML-taggar från HTML-dokumentet , tar bort alla andra data som inte visas på sidan , och ersätta vissa formateringstaggar med oformaterad text motsvarigheter . I C # Du kan uppnå detta genom att manipulera en sträng som innehåller HTML , tillämpa reguljära uttryck att bringa de relevanta delarna

    Du behöver : .
    En version av Visual Studio som innehåller språket C # .


    1 .
    lägga till en metod till C # program för att konvertera HTML . Skapa en metod som tar in en sträng och returnerar en sträng som följer :

    public String ConvertHTML ( sträng htmlSource )
    {
    returnera null ; }


    2 .
    Applicera ett reguljärt uttryck för att ta bort alla HTML-taggar . Den enklaste konverteringen är helt enkelt att hitta och ta bort alla HTML-taggar i dokumentet . Du kan använda ett reguljärt uttryck som identifierar mönster av tecken i strängar till text , att hitta alla HTML-taggar och ta bort dem . Detta ger dig bara med vanlig text . Det vanliga uttrycket för matchning HTML -taggar är : .

    <[^>]*>

    3
    ändrar koden din metod att tillämpa reguljära uttryck

    sträng convertedText .

    //ta bort alla HTML-taggar
    convertedText=System. Text. RegularExpressions. Regex. Replace ( htmlSource ,
    "<[^>]*>", string. Empty ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    återvända convertedText ;
    4 .
    Ta bort sidhuvud innehåll . Ett problem med den enkla metoden ovan är att den lämnar uppgifter i den konverterade text som inte skulle visas på HTML -sidan , till exempel vad som finns i taggar . Modifiera koden för att ta bort sidhuvudet innehållet innan du tar bort andra taggar

    sträng convertedText .

    //ta bort header
    convertedText=System. Text. RegularExpressions. Regex . Ersätt ( htmlSource ,
    @ " <() * huvudet ([^>])*>"," " ,
    System . Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    convertedText=System. Text. RegularExpressions. Regex. Replace ( convertedText ,
    "(<( )*(/)( ) * huvud () * > ;)"," " ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    convertedText=System. Text. RegularExpressions. Regex. Replace ( convertedText ,
    " ( ). *( ) " , string. Empty ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) ,

    //ta bort alla andra HTML taggar
    convertedText=System . Text. RegularExpressions. Regex. Replace ( convertedText ,
    "<[^>]*>", string. Empty ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    återvända convertedText ;

    Koden nu tar bort sidhuvudet attribut , tar sedan bort huvudet med alla uppgifter den innehåller innan du tar bort andra HTML-taggar . En liknande teknik kan tillämpas för att ta bort andra oönskade data , t. ex. den som finns i stil och skripttaggarna utanför taggarna .
    5 .
    Ersätt formateringstaggar med motsvarande klartext tecken . Medan HTML låter omfattande formatering , inklusive skapandet av tabeller och placering av textblock, kan enkla radbrytningar ersätta mycket av formatering i HTML . Lägg till följande kod mellan blocket som tar bort sidhuvud innehåll och blocket som tar bort alla andra HTML- taggar :

    //byt div , TR , li , p och taggar br med radbrytning
    convertedText=System. Text. RegularExpressions. Regex. Replace ( convertedText ,
    @ " <() * div ([^>])*>"," \ r \ r " , System . Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    convertedText=System. Text. RegularExpressions. Regex. Replace ( convertedText ,
    @ " <() * tr ([^>])*>" , "\ r \ r " ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    convertedText=System. Text. RegularExpressions. Regex. Replace ( convertedText ,
    @ " <( ) * p ([^>])*>"," \ r \ r " ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    convertedText=System. Text. RegularExpressions. Regex . Ersätt ( convertedText ,
    @ " <() * BR ( )*>"," \ r " ,
    System . Text. RegularExpressions. RegexOptions. IgnoreCase ) ,
    convertedText=System. Text. RegularExpressions. Regex. Replace ( convertedText ,
    @ " <() * Li ( )*>"," \ r " ,
    System. Text. RegularExpressions. RegexOptions. IgnoreCase ) .
    6
    Kör metoden och granska resultaten . Fortsätt att ändra den tills den ger det resultat du vill .

    tips och varningar


  • Denna kod ändras från ett mycket mer omfattande metod finns på länken i Referens 1 nedan . Det finns ett antal andra tekniker , inklusive några metoder som finns i externa bibliotek och eller via gränssnitt i externa program . Ett antal av dessa antecknas i avsnittet Resurser .
  • Ett annat alternativ är att använda en tredje part bibliotek som skapats för att utföra liknande uppgifter. Den fria , öppen källkod HTMLAgility pack (se Resurser ) innehåller en metod som kallas ConvertToPlainText som konverterar HTML till vanlig text .

Previous:nothing Next:sql klass online-utbildning





Relaterade artiklar


  • Felsökning java
  • hur man läser texten mellan två html-taggar i Visual Basic 6
  • hur man gör hemsida rubriker
  • hur man hittar frilansuppdrag på webben
  • hur du kör en klocka på en webbsida med hjälp av JavaScript
  • hur du installerar ISA Server 2006 proxyklienten
  • nybörjare Visual Basic 2008 tutorial
  • hur man beräknar en minnesadress
  • tutorial för att lära sig html
  • hur man gör ett Visual Basic Bildöverförare