Webbrowser Quelltext mit regex in Listbox

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Webbrowser Quelltext mit regex in Listbox

    Hallo Miteinander, ich bin neue hier im Forum und hoffe ich poste in den richtige bereich.

    Ich lade mit einem Webbrowser eine Internetseite, von dieser möchte ich mehere Parameter in eine Listbox laden

    Am Besten ich zeige es euch.


    Quellcode:
    <e2servicelist>



    <e2service>

    <e2servicereference>1:0:19:234E:58:1:FFFF016A:0:0:0:</e2servicereference>
    <e2servicename>SF 1 HD</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:19:234F:58:1:FFFF016A:0:0:0:</e2servicereference>
    <e2servicename>SF zwei HD</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:1:4:4E:1:FFFF01EA:0:0:0:</e2servicereference>
    <e2servicename>SF info</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:19:232E:53:1:FFFF0202:0:0:0:</e2servicereference>
    <e2servicename>ARD HD</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:19:232F:53:1:FFFF0202:0:0:0:</e2servicereference>
    <e2servicename>ZDF HD</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:19:234C:5A:1:FFFF025A:0:0:0:</e2servicereference>
    <e2servicename>ORF eins HD</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:19:234D:5A:1:FFFF025A:0:0:0:</e2servicereference>
    <e2servicename>ORF 2 HD</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:1:F:49:1:FFFF0172:0:0:0:</e2servicereference>
    <e2servicename>3+</e2servicename>
    </e2service>


    <e2service>

    <e2servicereference>1:0:1:B:46:1:FFFF013A:0:0:0:</e2servicereference>
    <e2servicename>Pro7</e2servicename>
    </e2service>
    </e2servicelist>





    Nun würde ich gerne eine Listbox mit 2 Spalten füllen. die eine spalte enthält jeweils die Servicereverenc und die andere den servicenamen






    Bsp.
    1:0:19:234E:58:1:FFFF016A:0:0:0: ¦ SF 1 HD
    1:0:19:234F:58:1:FFFF016A:0:0:0: ¦ SF zwei







    Bitte Helft mir, ich verzweifle bald!


    freundliche Grüsse
    ich glaub ja nicht, dass eine Site im Web existiert mit dem von dir angegebenen Code.

    Dann hat Listbox ein Problem: Es gibt nur eine spalte.

    Tu deine Daten besser in eine typisierte DataTable, also in ein Dings wie dieses hier.

    Jo, sieht voll oversized aus, und man denkt, mit untypisiert kommt man schneller voran - aber das täuscht, v.a., sobald man auch bisserl was machen will mit den Daten, und sei es nur, sie als Tabelle mit Spaltenüberschriften anzuzeigen.
    genauso gut könnte er auch mit einer listview arbeiten und 2 columns erstellen. und sie abspeichern whatever.


    b2t:

    kannste uns mal die Seite geben damit ich mir den Quelltext selber anschauen kann?

    weiter hilfe kommt dann.

    mfg
    Queltext stammt von meinem Netzwerk. Daher möchte ich die IP nicht posten. Oben findest du den kompletten quellcode....
    Der code ist von einem Fernseher, ich möchte gerne all meine Sender auflisten.

    Kennst du eine Lösung für mein Problem?

    Was ich noch dazu sagen muss ist, das mit der Zeit eventuel immer mehr sender kommen.

    unknown identity schrieb:

    Was funktioniert denn nicht?

    Du gibst uns keinen vernünftigen Link, Kein Code. Einfach ein paar abschnitte und willst das wir dir das machen?

    mfg
    Dies ist der Komplette Code... ich lese ihn mit
    "http://192.168.1.16/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet" aus

    ich habe es mit der Split Funktion

    Dim quellcode As String = WebBrowser1.DocumentText
    Dim anfang As String = "<e2eventdescriptionextended>" 'Was vor dem Objekt steht
    Dim ende As String = "</e2eventdescriptionextended>" 'Was dahinter steht
    Dim quellcodeSplit As String
    quellcodeSplit = Split(quellcode, anfang, 5)(1)
    quellcodeSplit = Split(quellcodeSplit, ende, 6)(0)

    RichTextBox2.Text = quellcodeSplit

    Probiert

    jedoch krieg ich mit dieser Variante nur 1 ergebniss und es ist nicht gerade die schnellste lösung.
    Aha du hast dich also mit RegEx beschäftigt?



    Da du mental behindert bist helf ich dir:

    RegEx GetBetween:
    http://www.vb-community.eu/board/index.php?page=Thread&postID=34476&highlight=getbetween#post34476

    Quelltext:

    VB.NET-Quellcode

    1. Dim webClient As New Net.WebClient With {.Proxy = Nothing}
    2. Dim Input As String = webClient.DownloadString("url")


    mfg

    e: ist dir nicht aufgefallen das komischer weise die ganzen html-tags gleich sind?

    unknown identity schrieb:

    Aha du hast dich also mit RegEx beschäftigt?



    Da du mental behindert bist helf ich dir:

    RegEx GetBetween:
    http://www.vb-community.eu/board/index.php?page=Thread&postID=34476&highlight=getbetween#post34476

    Quelltext:

    VB.NET-Quellcode

    1. Dim webClient As New Net.WebClient With {.Proxy = Nothing}
    2. Dim Input As String = webClient.DownloadString("url")


    mfg

    e: ist dir nicht aufgefallen das komischer weise die ganzen html-tags gleich sind?
    e: ist dir nicht aufgefallen das komischer weise die ganzen html-tags gleich sind?

    darum kam ich nicht weiter....

    mal schauen....

    ErfinderDesRades schrieb:

    IMO sind das Dataset-Daten, daher habichmal was gebastelt, wo das Zeugs in ein typ.Dataset geladen wird.
    Hat mit Regex nix zu tun.

    eiglich wassich in post#2 gesagt habe

    Hallo, ich steh doch wieder an, ich versuche meinen link zum holen der daten einzubinden

    192.168.1.16/web/getservices?s…22%20ORDER%20BY%20bouquet


    Kannst du mir nochmals auf die sprünge helfen?

    (Der link beinhaltet die <e2servicename> ect. )





    Wow Sieht sehr gut aus ... ich Probier das noch online zu verknüpfen.

    Danke Danke Danke

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „schnibli“ ()

    ErfinderDesRades schrieb:

    IMO sind das Dataset-Daten, daher habichmal was gebastelt, wo das Zeugs in ein typ.Dataset geladen wird.
    Hat mit Regex nix zu tun.

    eiglich wassich in post#2 gesagt habe
    Hallo, ich Probiere seit gestern die Seite
    192.168.1.16/web/getservices?s…22%20ORDER%20BY%20bouquet
    in dein Beispiel zu integrieren jedoch ohne erfolg.
    Wenn du dies erklären oder ausführen könntest währe es sehr nett, da ich fast verzweifle ?(

    Gruss
    tja, mit der site konnte ich schon gestern nix anfangen - das scheint etwas zu sein, was nur lokal auf deinem System existiert.

    aber du hast es doch geschaft, den quelltext oder was immer das ist zu posten - also hast du ihn doch in string-Form vorliegen gehabt.
    Jo, und dann kann man das doch einlesen, wie im Code gezeigt.

    VB.NET-Quellcode

    1. ds.ReadXml(New StringReader(XDoc.ToString))

    also statt XDoc.ToString kann ja ein beliebiger annerer String eingesetzt werden

    ErfinderDesRades schrieb:

    tja, mit der site konnte ich schon gestern nix anfangen - das scheint etwas zu sein, was nur lokal auf deinem System existiert.

    aber du hast es doch geschaft, den quelltext oder was immer das ist zu posten - also hast du ihn doch in string-Form vorliegen gehabt.
    Jo, und dann kann man das doch einlesen, wie im Code gezeigt.

    VB.NET-Quellcode

    1. ds.ReadXml(New StringReader(XDoc.ToString))

    also statt XDoc.ToString kann ja ein beliebiger annerer String eingesetzt werden
    AHA lol, manchmal braucht man nur einen Gedankens schub :) ... Danke dir vielmals.

    ErfinderDesRades schrieb:

    tja, mit der site konnte ich schon gestern nix anfangen - das scheint etwas zu sein, was nur lokal auf deinem System existiert.

    aber du hast es doch geschaft, den quelltext oder was immer das ist zu posten - also hast du ihn doch in string-Form vorliegen gehabt.
    Jo, und dann kann man das doch einlesen, wie im Code gezeigt.

    VB.NET-Quellcode

    1. ds.ReadXml(New StringReader(XDoc.ToString))

    also statt XDoc.ToString kann ja ein beliebiger annerer String eingesetzt werden
    Ich getraue mich langsam gar nicht mehr zu fragen.
    ich hab nun

    Dim TBTEXT As StringReader = New StringReader("http://192.168.1.16/web/getservices? sRef=1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet")

    Me.E2servicelist.ReadXml(New StringReader(TBTEXT.ToString))
    Me.E2servicelist.WriteXml(_DataFile.FullName)
    geändert,
    jedoch liest er immernoch die daten von "("..\..\EService.Xml")" ein
    wie kann ich das ändern?

    es tut mir leid aber mit dem Dataset.data hab ich noch keine erfahrung.
    So, ich habe es nun Geschaft die aktuellen Daten herunterladen und einzugügen :) ... danke :D

    Jetzt möchte ich eigentlich wenn man bei e2servicename eine Zelle anklickt das der e2servicereference in eine Textbox geschrieben wird.

    Scheint nicht schwer zu sein aber eben :)