Archived Website:
This website is a static snapshot for archival purposes only.
It is no longer maintained or updated.
dataprovider.parser
Class SimpleParserService
java.lang.Object
|
+--dataprovider.parser.SimpleParserService
- public class SimpleParserService
- extends java.lang.Object
- implements ParserService
Eine konkrete Implementierung des ParserServices. Die Sprache ist relativ simpel gehalten.
Für der meisten Web-Angebote reicht dieser Parser jedoch vollkommen aus.
Der Parser besteht aus beliebig vielen Zeilen, die man dem Parser mit der Methode
setParser( "Zeile1\nZeile2\nZeile3\n" ) uebergibt. Jeder Zeile hat die Form
regAusdruck|Variablenname|regAusdruck.
Zum Verstaendnis ein konkretes Beispiel:
1.) Die erste Ueberschrift
Die erste Beschreibung
2.) Die zweite Ueberschrift
Die zweite Beschreibung
Aus diesem Text sollen die Bestandteile URL, Ueberschrift und Beschreibung extrahiert
werden. Der Parser sieht so aus:
Zeile 1: "[0-9]\.) "
Zeile 2: "|TITLE|"
Zeile 3: "|DESC|"
Heisst: Der Parser sieht sich diese Seite an und sucht nach dem ersten Vorkommen des
ersten Ausdrucks der ersten Zeile, in diesem Fall "[0-9]\.) ". Alles dazwischen
wird mittels ParserStore der Variablen URL zugewiesen. Danach geht es analog weiter
mit Zeile 2 und 3. Sobald die letzte Zeile abgearbeitet ist, wird in die erste zurueckgesprungen.
Abgebrochen wird der Vorgang, sobald ein Ausdruck nicht mehr auf den verbleibenden Text passt.
Die Variablen URL, TITLE und DESC entsprechen den URLs, Titeln und Kurzbeschreibungen von
Suchergebnissen. Wer eine SearchResultEnumerationen mit Daten fuellen will, muss im ParserStore
in jedem Fall diese Variablen belegen. Zusaetzlich ist es natuerlich erlaubt, weitere Variablen,
wie Datum, Download-Groesse zu benutzen und die SearchResultEnumeration entsprechend zu erweitern.
- Author:
- Markus Hövener
|
Field Summary |
private java.lang.String |
footer
|
private java.lang.String |
header
|
private java.lang.String[] |
parser
|
| Methods inherited from class java.lang.Object |
,
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
registerNatives,
toString,
wait,
wait,
wait |
parser
private java.lang.String[] parser
header
private java.lang.String header
footer
private java.lang.String footer
SimpleParserService
public SimpleParserService()
SimpleParserService
public void SimpleParserService()
ParserService
public void ParserService()
parseString
public ParserStore parseString(java.lang.String s)
throws ParserServiceUnknownParserException
- Specified by:
- parseString in interface ParserService
setParser
public void setParser(java.lang.String[] new_parser)
throws ParserServiceMalformedParserException
- Specified by:
- setParser in interface ParserService
setHeaderString
public void setHeaderString(java.lang.String new_header)
- Normalerweise wird der Parser auf den gesamten String angewendet. Falls man dieser Methode
jedoch einen regulären Ausdruck beginnt, wird das Parsen erst hinter dem Teil begonnen,
der auf den Ausdruck passt.
- Parameters:
new_header - Der reguläre Ausdruck als String
setFooterString
public void setFooterString(java.lang.String new_footer)
- Normalerweise wird der Parser auf den gesamten String angewendet. Falls man dieser Methode
jedoch einen regulären Ausdruck beginnt, wird das Parsen auf den Teil des Textes beschränkt, der
der vor dem auf den Ausdruck passenden Text liegt.
- Parameters:
new_header - Der reguläre Ausdruck als String