[Hilfe] HTML und Regex [Hilfe] HTML und Regex
Danke Danke:  0
Ergebnis 1 bis 7 von 7
  1. Nabend!

    Ich sitz grad dran mir ne kleine Mensaapp für unsere Mensa zu basteln. Da ich eigentlich dafür nur ein paar Tabellen auslesen muss dachte ich mir verzichte ich auf nen kompletten HTML Parser und durchforste einfach die HTML-Seite per regular expressions.

    Jetzt bin ich aber seit ner Stunde am <td> Tag und es funktioniert einfach nicht.

    Egal wie blöd ich den regex-string auch baue sowie ich auch nur an td denke wird alles gelöscht.

    Hier mal die Funktion:

    public void filterHTML() {
    Iterator it = readHTML.iterator();
    while(it.hasNext()) {
    String s = (String) it.next();
    if(!s.matches(".*?td.*"))
    it.remove();
    }
    twTest.setText(""+readHTML.size() + " "+ readHTML.toString());
    }


    wenn ich statt td th, tr, table, title oder jeden anderen beliebigen Tag eingebe funktioniert es problemlos, nur bei td ist das Ergebnis leer. Was übersehe ich?

    Auch komplexere Kombinationen bringen nichts.
    0
     

  2. hi,

    meiner meinung nach sieht dein code soweit ok aus.
    kannst ja mal den entsprechenden HTML-auszug deiner mensaseite posten.

    für das testen von regulären ausdrücken nutze ich meist http://gskinner.com/RegExr/

    html dort in das große feld eingeben und ob en den regex. funktioniert schön mit ( ) gruppen etc.

    vielleicht hilft dir das beim testen.

    mfg
    Rumbel
    0
     

  3. Hier mal ein Auszug, bzw. hier die ganze Seite (http://www.sw-bs.de/braunschweig/essen/menus/mensa-1).

    Bei dem von dir geposteten Link funktioniert übrigens alles problemlos ^^
    Egal ob ich da jetzt "<td.*", ".*?td.*" oder sonstige Sachen bauen. Sogar mehrere Tags sind möglich ".*?(td|tr|th).*". Nur in meiner App funktionierts natürlich nicht ^^

    Was mir Aufgefallen ist, ich schreibe ja per
    Code:
    twTest.setText(""+readHTML.size() + " "+ readHTML.toString());
    Die Länge und alle Einträge in den Textview, wenn ich allerdings "td" drinhabe bleibt der TextView komplett leer, normalerweise würde "0 []" angezeigt.

    Noch zur Info, ich lese vorher einfach die komplette Seite in eine LinkedList ein, aber das sollte doch kein Problem sein oder?

    HTML-Code:
    <table class="swbs_speiseplan" id="swbs_speiseplan_mo">
    <tr class="swbs_speiseplan_head_tr">
    <th class="swbs_speiseplan_head" colspan="2">Montag, 5. Juli 2010 – Mittagsmensa</th>
    <th class="swbs_speiseplan_head_price_s">Stud.</th>
    <th class="swbs_speiseplan_head_price_e">Bed.</th>
    <th class="swbs_speiseplan_head_price_g">G&auml;ste</th>
    </tr>
    <tr class="swbs_speiseplan_grey">
    <td class="swbs_speiseplan_kind_meal"><nobr>Essen A</nobr></td>
    <td class="swbs_speiseplan_meal">Terrine Käsesuppe(11) mit Mettbällchen (s)</td>
    <td class="swbs_speiseplan_price_s">1,20 &euro;</td>
    <td class="swbs_speiseplan_price_e">2,50 &euro;</td>
    <td class="swbs_speiseplan_price_g">3,20 &euro;</td>
    </tr>
    <tr class="swbs_speiseplan_white">
    <td class="swbs_speiseplan_kind_meal"><nobr>Essen B</nobr></td>
    <td class="swbs_speiseplan_meal">Heringshappen(2,3) mit Apfel und Gurke(9)</td>
    <td class="swbs_speiseplan_price_s">1,20 &euro;</td>
    <td class="swbs_speiseplan_price_e">2,50 &euro;</td>
    <td class="swbs_speiseplan_price_g">3,00 &euro;</td>
    </tr>
    <tr class="swbs_speiseplan_grey">
    <td class="swbs_speiseplan_kind_meal"><nobr>Essen C</nobr></td>
    <td class="swbs_speiseplan_meal">Mailänder Kotelett mit Tomatensauce (s)</td>
    <td class="swbs_speiseplan_price_s">1,70 &euro;</td>
    <td class="swbs_speiseplan_price_e">3,00 &euro;</td>
    <td class="swbs_speiseplan_price_g">3,50 &euro;</td>
    </tr>
    0
     

  4. Alles zurück!!

    Hab nochmal ein 2. TextView angelegt, der mir nur die Länge der Liste anzeigt, und siehe da, es funktioniert doch. Keine Ahnung was den 1. TextView so zerhaut, aber intern sind die Daten da ^^
    0
     

  5. poste doch mal den gesamten code, vielleicht überschreibst du irgendwo selbst dein twTest.
    0
     

  6. Den TextView twTest zerhaut es wenn ich nach td suche, ist aber jetzt auch kein Riesenproblem, dient nur zur Kontrolle.



    package app.mensa;

    import android.app.Activity;
    import android.view.*;
    import android.view.View.OnClickListener;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import java.net.*;
    import java.util.LinkedList;
    import java.util.ListIterator;
    import java.io.*;

    public class Mensa extends Activity implements OnClickListener{
    private TextView twTest;
    private TextView twCount;
    private Button filterBtn;
    private LinkedList<String> readHTML;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    twTest = (TextView) findViewById(R.id.twTest);
    twCount = (TextView) findViewById(R.id.TextView01);
    filterBtn = (Button) findViewById(R.id.filterBtn);
    filterBtn.setOnClickListener(this);
    readHTML = new LinkedList<String>();
    readMensaplan();
    }

    public void onClick(View v) {
    switch (v.getId()) {
    case R.id.filterBtn:
    filterHTML();
    }
    }

    public void filterHTML() {
    ListIterator<String> it = readHTML.listIterator();
    while(it.hasNext()) {
    String s = (String) it.next();
    if(!s.matches(".*(<td|<table|<tr|<th).*"))
    it.remove();
    else {
    s = s.replaceAll("<[^<]+?>", "");
    //s = hexToChar(s);
    it.set(s);
    }
    }
    twTest.setText(""+readHTML.size() + " " + readHTML.toString());
    twCount.setText(""+readHTML.size() + " " + readHTML.get(5));
    }

    /*public String hexToChar(String input) {
    input = input.replaceAll("&#228;", "ä");
    input = input.replaceAll("–", "-");
    input = input.replaceAll("&auml;", "ä");
    input = input.replaceAll("&euro;", "€");
    return input;
    }*/

    public void readMensaplan() {
    try {
    URL mensaPlanBs1 = new URL("http://www.sw-bs.de/braunschweig/essen/menus/mensa-1");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(
    mensaPlanBs1.openStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null) {
    inputLine.trim();
    readHTML.add(inputLine);
    }
    twTest.setText(""+readHTML.size());
    in.close();
    }
    catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    0
     

  7. Also bei mir funzt deine regular expression.
    Edit: Mhh, Thread ganz lesen wäre wohl auch keine schlechte Idee


    List<String> htmlList = new ArrayList<String>();
    URL mensaURL;
    try {
    mensaURL = new URL("http://www.sw-bs.de/braunschweig/essen/menus/mensa-1/index.php");

    URLConnection mensaURLConnection = mensaURL.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(mensaURLConnection.getInputStream()));
    String line;
    while ((line = in.readLine()) != null)
    htmlList.add(line);
    in.close();
    Iterator it = htmlList.iterator();
    while(it.hasNext()) {
    String s = (String) it.next();
    if(!s.matches(".*?td.*"))
    it.remove();
    else
    Log.v("test", s);
    }
    } catch (Exception e) {
    // i don't care
    e.printStackTrace();
    }
    0
     

Ähnliche Themen

  1. Probleme mit Opera Mobile 10 bei Links und HTML Dateien...
    Von Preforx im Forum HTC HD2 Programme
    Antworten: 6
    Letzter Beitrag: 22.06.2010, 18:55
  2. Font und Schriftfarbe in HTML-Mails ändern?
    Von EmaNymton im Forum HTC HD2 Kommunikation
    Antworten: 0
    Letzter Beitrag: 24.12.2009, 16:01
  3. TF3D und eMail HTML code ?
    Von dasacom im Forum Touch HD Communication
    Antworten: 0
    Letzter Beitrag: 16.07.2009, 13:55
  4. Touch HD und HTML-Mails | geht, geht nicht?
    Von s-lab im Forum Touch HD Interface
    Antworten: 9
    Letzter Beitrag: 28.01.2009, 17:43
  5. Pocket Outlook und HTML-Mails
    Von zanthos im Forum Plauderecke
    Antworten: 1
    Letzter Beitrag: 19.01.2005, 13:02

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

android html auslesen

android regex html

regex android

android webseite auslesen

http:www.pocketpc.chandroid-entwicklung98190-hilfe-html-regex.htmlhtml auslesen androidandroid webseiten auslesenandroid html tags auslesenandroid website auslesenandroid html parsen webpage auslesen androidandroid html parserjava regex html auslesenhttp seite auslesen androidandroid parse htmlandroid analyze html mit regexhtml seiten auslesen androidjava android html daten auslesenmit ndroid websiten auslesenandroid html table auslesenandroid regexanroid infos aus einer html seite auslesen(textview) findviewbyid(r.id.twtest)android regedyregex android html

Stichworte