4113 HTML Parser
Results 1 to 13 of 13
  1. #1

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts

    4113 HTML Parser

    Hallo

    hat jemand von euch dieses Beispiel schon?

    hab mich mit javax.swing.text.html.parser gespielt - ist aber eher eine Themaverfehlung...

    könnte hilfe brauchen...

    danke

  2. #2
    Bomple's Avatar
    Title
    Elite
    Join Date
    Mar 2002
    Location
    Wien
    Posts
    333
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ich würd dir ja gern den einen oder anderen tip geben, aber da ich die angabe nicht kenn... kannst du die nicht irgendwo online stellen und hinlinken? dann schau ichs mir mal an...

    find ich übrigens merkwürdig das die einen html-parser aufgeben... das horcht sich nämlich nach ziemlich viel aufwand an...

  3. #3

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Angaben

    ist auch viel Arbeit (allerdings ist die Anzahl der HTML tags beschränkt), aber auch recht interessant

    Tips wären echt spitze

    Hier kommt die Angabe:

    und Danke
    Attached Files Attached Files
    Last edited by sandrodwh; 12-06-2002 at 10:24.

  4. #4

    Title
    Master
    Join Date
    Apr 2002
    Posts
    140
    Thanks
    0
    Thanked 1 Time in 1 Post
    mit der klasse, die du oben erwähnt hast, kommst du nicht weit. du mußt einfach nur den string einlesen und die tags interpretieren. steht da also ein text zwischen zwei tags im body, zum beispiel h2 (natürlich öffnendes und schliessendes. ich kann die tags hier nicht ausschreiben, weil er mir den text im posting dann auch umwandelt und die tags verschwinden läßt dann soll in deiner ausgabe stehen: 'Text_sehr_gross text; '
    bisserl komplizierter wirds bei den tabellen, da es mehrere zeilen in der tabelle geben kann und mehrere spalten innnerhalb einer zeile. da machst du's so, dass du eine zeile nach der anderen mit ihren spalten abarbeitest. die ausgabe bei den tabellen ist auch ein bisschen komisch, da zuerst 'Tabelle' ausgegeben werden soll, dann die anzahl der zeilen, dann die anzahl der spalten und anschliessend der text aller spalten.
    bei den spalten ist das nicht so gemeint, dass wenn ich eine tabelle hab, die 3 zeilen und 2 spalten hat, dass die ausgabe '3 2' lautet, sondern es werden die insgesamten spalten gezählt. in dem fall würde beim oberen fall die ausgabe so aussehen: '3 6'

    hoffe, dass ich dir ein bisschen weiterhelfen konnte.

    lg, jasmin
    Last edited by jessi; 12-06-2002 at 16:29.

  5. #5
    Bomple's Avatar
    Title
    Elite
    Join Date
    Mar 2002
    Location
    Wien
    Posts
    333
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ich würd das ganze rekursiv lösen...

    zb mit folgender funktion(in pseudocode, ich hoffe du kommst damit zurecht):

    funktion parse(übergabeparameter endtag):
    while(eingelesenes wort ungleich endtag)
    switch (eingelesenes wort)
    case H1:
    ausgabe: "TEXT_sehr_gross "
    rufe parse auf mit parse(/H1)
    ausgabe: "; "
    case H2:
    ausgabe:"TEXT_gross "
    rufe parse auf mit parse(/H2)
    ausgabe: "; "
    ...
    case kein erkanntes tag: gib das eingelesene wort aus
    case falsches_endtag: fehlermeldung und abbruch;
    case eof: fehlermeldung und abbruch;
    end while
    end parse

    am anfang brauchst vielleich noch ein bissi sonderbehandlung (damit du HTML und HEAD und so richtig behandelst)
    bzw. für tables brauchst vielleicht auch eine eigene routine
    ansonsten könntest dann sobald das tag BODY kommt parse aufrufen mit parse(/BODY);

    [edit] hab bei allen tags die spitzen klammern rauseditiert, sonst hätt das sehr komisch ausgeschaut ...
    Last edited by Bomple; 12-06-2002 at 17:51.

  6. #6

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Herzlichen Dank Euch beiden

    Habe eine kleine "Datenmodellierungs-Prüfungsvorbereitungspause" gemacht - jetzt werd ich diesen Parser angehen (könnte die Punkte gut brauchen).

    Oh Gott hab gerade herausgefungen das die EprogIO Methode readWord() - genau das tut was ihr Name besagt - nämlich nur ein Wort einlesen -
    Ich steh auf der Leitung ... wie lese ich eine Folge von Wörtern ein (beendet von Return) ???????
    Ich habe mir überlegt das ganze in einen Stringbuffer zu bekommen um es dort zu bearbeiten (rekursiv)......

    werd mal schlafen gehen - vielleicht komme ich so von der Leitung runter....

    lg
    sandrodwh

  7. #7

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Heute auf der Eprog Webpage wurde mir mitgeteilt das sich die Spezifikationen geändert haben - Eingabezeile muss mit </HTML> beendet werden - das macht die Sache um vieles leichter..
    lg
    sandrodwh

  8. #8
    Bomple's Avatar
    Title
    Elite
    Join Date
    Mar 2002
    Location
    Wien
    Posts
    333
    Thanks
    0
    Thanked 0 Times in 0 Posts
    wolltest wohl sagen muss mit &lt;/html&gt; beendet werden...

    wenn du's tatsächlich so löst wie ich vorgeschlagen habe dann ist das allerdings mehr im weg als sonstwas... mit meiner methode werden die einzelnen "wörter" nämlich behandelt sobald du sie einliest... dh. du musst immer nur einen einzelnen kurzen string speichern... das zeilenende ist für dich uninteressant, das wird ausserdem eh von readword() übersprungen

    ich geb zu das rekursives programmieren nicht unbedingt intuitiv ist, wenn du's aber mal raus hast geht vieles leichter. wennst willst kann ich dir meine methode auch nochmal genauer erklären. damit du meinen pseudocode in java implementieren kannst brauchts nämlich noch einige veränderungen (wenn du das prinzip mal verstanden hast sollt das allerdings nicht so schwer sein)

  9. #9

    Title
    Principal
    Join Date
    Nov 2001
    Posts
    59
    Thanks
    0
    Thanked 0 Times in 0 Posts
    hi

    hab die selbe angabe (und muss es bis morgen machen hähä) aber da gibts unter anderem ein problem....das readWord() . . ..

    wenn ich das readWord verwende, kann er nicht das aller letzte element des eingabestrings finden (welches z.b. < /HTML > sein sollte) und wartet andauernd auf den nächsten input (endlosschleife)

    hat da wer eine idee wie ich das lösen könnte?

    die inputStream variante müsste eigentlich gehen, jedoch kann man damit keine input/output paare generieren (welche wohl für den tuserver wichtig sind)

  10. #10

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ja ja - bis morgen, solls auch bei mir fertig sein -


    ich mach das ganze auch mit ReadWord() - dabei lese ich in einer while-Schleife ein Wort nach dem anderen ein bis das HTML-EndTag eingegeben wird -

    Da ja in der Mail von unseren EPROG-Chefs steht:
    "Der Eingabestring wird immer mit dem HTML-EndTag abgeschlossen"

    Allerdings hab ich später meine Probleme das Parsen.

    Ich hab es auch mit der oben beschriebenen Rekursivität probiert,
    aber ....naja - leider nein - damit schaff ich zwar das Tag interpretieren - aber der Syntaxcheck liefert recht abenteuerliche Ergebnisse.

    Wäre für jede geniale Hilfe dankbar

    sandrodwh
    Last edited by sandrodwh; 16-06-2002 at 18:07.

  11. #11

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts
    FERTIG !!!

  12. #12
    Bomple's Avatar
    Title
    Elite
    Join Date
    Mar 2002
    Location
    Wien
    Posts
    333
    Thanks
    0
    Thanked 0 Times in 0 Posts
    würd mich interessieren wie du's jetzt hingekriegt hast...

  13. #13

    Title
    Principal
    Join Date
    Mar 2002
    Location
    Wien, Innsbruck
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Thumbs up

    Is ok - werde meinen HTML - Parser (30 Punkte) auf

    http://eprog.sourceforge.net/eprog/

    veröffentlichen

    sandrodwh

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •