HTML website "zerlegen"

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von LaMiy.

    HTML website "zerlegen"

    Hallo, Ich habe eine HTML Website hier als String bzw. als Datei und dort sind mehrere Blöcke mit diesem Schema aufgebaut :

    HTML-Quellcode

    1. <td class="alt1" id="td_threadtitle_2596346" title="">
    2. <div>
    3. <span style="float:right">
    4. <img class="inlineimg" src="http://cdn.elitepvpers.org/forum/images/misc/tag.png" alt="psn" />
    5. <a href="http://www.elitepvpers.com/forum/gaming-news-de/#" onclick="attachments(2596346); return false"> <img class="inlineimg" src="http://cdn.elitepvpers.org/forum/images/misc/paperclip.gif" border="0" alt="1 Attachment(s)" /></a>
    6. </span>
    7. <a href="http://www.elitepvpers.com/forum/gaming-news-de/2596346-psn-hacker-zu-high-school-abschluss-verurteilt.html" id="thread_title_2596346">PSN: Hacker zu High-School Abschluss verurteilt!</a>
    8. <span class="smallfont" style="white-space:nowrap">(<img class="inlineimg" src="http://cdn.elitepvpers.org/forum/images/misc/multipage.gif" alt="Multi-page thread" border="0" /> <a href="http://www.elitepvpers.com/forum/gaming-news-de/2596346-psn-hacker-zu-high-school-abschluss-verurteilt.html">1</a> <a href="http://www.elitepvpers.com/forum/gaming-news-de/2596346-psn-hacker-zu-high-school-abschluss-verurteilt-2.html">2</a> <a href="http://www.elitepvpers.com/forum/gaming-news-de/2596346-psn-hacker-zu-high-school-abschluss-verurteilt-3.html">3</a> ... <a href="http://www.elitepvpers.com/forum/gaming-news-de/2596346-psn-hacker-zu-high-school-abschluss-verurteilt-14.html">Last Page</a>)</span>
    9. </div>
    10. <div class="smallfont">
    11. <span style="cursor:pointer" onclick="window.open('http://www.elitepvpers.com/forum/members/3749006-hupfi10.html', '_self')">Hupfi10</span>
    12. </div>
    13. </td>
    14. <td class="alt2" title="Replies: 133, Views: 5,467">
    15. <div class="smallfont" style="text-align:right; white-space:nowrap">
    16. Today <span class="time">15:29</span><br />
    17. by <a href="http://www.elitepvpers.com/forum/members/5202722-trollmacia.html" rel="nofollow">TrollMacia</a> <a href="http://www.elitepvpers.com/forum/gaming-news-de/2596346-psn-hacker-zu-high-school-abschluss-verurteilt-14.html#post22730289"><img class="inlineimg" src="http://cdn.elitepvpers.org/forum/images/elitepvpers/buttons/lastpost.gif" alt="Go to last post" border="0" /></a>
    18. </div>
    19. </td>
    20. <td class="alt1" align="center">133</td>
    21. <td class="alt2" align="center">5,467</td>
    22. </tr><tr>


    Dieses Schema ist nun 20 - 30 mal untereinander "gestapelt" wie kann ich nun jedes "Element" auslesen und einzeln verarbeiten ?

    Lg Graphic
    Hi,

    dein Text hat also eine bestimmte Struktur. Stringstrukturen kann man wunderbar mit sogenannten RegularExpressions aus einem Text herausfiltern.
    Du hast ein Suchpattern und das sucht dir alle Vorkommen im Text, welche auf dieses Pattern passen.
    Dein Abschnitt fängt anscheinend immer mit "<table>" an und hört mit 2x "<tr>" auf.
    Daraus ergibt sich folgendes Suchmuster: "<table>(.*?)<tr><tr>" (da im <table> nochwas drin steht -> <table.*>(.*?)<tr><tr>)
    Dieses Suchmuster auf deinen Text angewandt liefert dir also alle Ergebnisse die passen. In VB geht das so.

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Text.RegularExpressions
    3. Public Class Form1
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. Dim input As String = "blabla<table id='x'> Hier steht das wichtige<tr><tr>"
    6. Dim r As New Regex("<table.*>(.*?)<tr><tr>")
    7. Dim matches As MatchCollection = r.Matches(input)
    8. For Each m As Match In matches
    9. MessageBox.Show(m.ToString())
    10. Next
    11. End Sub
    12. End Class


    In "matches" sind jetzt deine Ergebnisse gespeichert.