Hab folgendes Problem:
ich hab einen Html Parser geschieben und filtert mir schon die Texte aus den html tags leider nur die Erste Zeile des html tags, weiß nicht wie ich vorgehen muss, wenn in der Quelle meherer Zeilen hat und dann so aussieht:
hier die Methoden
Könnte mir jemand helfen?
Gruß
Micha
ich hab einen Html Parser geschieben und filtert mir schon die Texte aus den html tags leider nur die Erste Zeile des html tags, weiß nicht wie ich vorgehen muss, wenn in der Quelle meherer Zeilen hat und dann so aussieht:
Code:
257.011-001;Rechner RN6 mit EURONAV IV;Rechner RN6 mit EURONAV IV;RN6 ENAV IV;Rechner RN6 mit EURONAV IV;<html><head></head><body><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">RN6 - Digital Map Generator</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">16-Kanal-GPS-Empfänger</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Digital Map System Software EURONAV IV</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Verarbeitung von Raster- & Vektor-Karten sowie Höhen-Modellen,</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Moving Map, Flugplanung, Flugaufzeichnung,</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Terrain Warning & Emergency Mode</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Missionsplanung, benutzerdefinierte Datenbanken,</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Checklisten u.v.m.</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Beinhaltete Karten:</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Jeppesen(R) fujara Datenbank</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0""></font></body></html>#;<html><head></head><body><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Digital Map Generator</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">16-channel GPS-Receiver</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Digital Map System Software EURO IV</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Processing raster & vector charts as well as Digital Terrain Data</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Moving Map, Flight Planning, Flight Recording</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Terrain Warning & Emergency Mode,</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Mission Planning, user defined Databases</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Check Lists </font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Included Maps/Charts:</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0"">Jeppesen(R) fujara Database</font></p><p style=""margin-top: 0""><font font-family=""null"" font-size=""0""></font></body></html>#;
Java:
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
import sun.java2d.SunGraphicsEnvironment;
import java.io.BufferedReader;
import java.io.FileDescriptor;
import java.io.FileReader;
import java.io.FileWriter;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
/**
* User: kd
* Date: 27.08.12
* Time: 17:29
*/
public class ParserEAN
{
public static void main(String[] args)
{
ParserEAN p = new ParserEAN();
p.performTextPrepare();
}
public ParserEAN()
{
}
public void performTextPrepare()
{
try
{
CsvReader cr = new CsvReader("c:/Entwicklungsordner/java/htmlParserEan/html/cut.xhtml", ";".charAt(0), Charset.forName("UTF-8"));
List<TextRecord> exportTexts = new ArrayList<TextRecord>();
String currentLine = null;
//
while (cr.readRecord())
{
String[] currentRow = cr.getValues();
TextRecord trec = new TextRecord();
trec.setAbasId(currentRow[0]);
trec.setBesch(currentRow[1]);
trec.setNamezwei(currentRow[2]);
trec.setVkbez(currentRow[3]);
trec.setDescIntern(currentRow[4]);
trec.setDescDE(cleanHTML(currentRow[5]));
trec.setDescEN(cleanHTML(currentRow[6]));
exportTexts.add(trec);
}
// Export List exportTexts to CSV ...
String header = "abasId;besch;namezwei;vkbez;intern;textDE;textEN";
CsvWriter csvw = new CsvWriter("c:/Entwicklungsordner/java/htmlParserEan/html/test.csv", ";".charAt(0), Charset.forName("UTF-8"));
csvw.setUseTextQualifier(false);
for (int i = 0; i < exportTexts.size(); i++)
{
TextRecord tr = exportTexts.get(i);
csvw.writeRecord(tr.getTextColumns());
csvw.endRecord();
}
csvw.flush();
csvw.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
private String cleanHTML(String dirtyHTML)
{
int spos = 0;
int epos = 0;
int cpos = 0;
String result = new String();
if (dirtyHTML != null && dirtyHTML.length() > 0)
{
try
{
spos = dirtyHTML.indexOf("<font ", spos);
cpos = dirtyHTML.indexOf(">", spos);
epos = dirtyHTML.indexOf("</font>", cpos);
String t = dirtyHTML.substring(cpos+1, epos);
result = t;
} catch (IndexOutOfBoundsException iob)
{
System.out.println("iob: " + dirtyHTML);
}
}
return result;
}
}
hier die Methoden
Java:
import java.util.jar.Attributes;
/**
* User: kd
* Date: 29.08.12
* Time: 15:56
*/
public class TextRecord
{
public String abasId;
public String besch;
public String namezwei;
public String vkbez;
public String descIntern;
public String descDE;
public String descEN;
private String[] textColumns = new String[7];
public TextRecord()
{
}
public String getAbasId()
{
return abasId;
}
public void setAbasId(String abasId)
{
textColumns[0] = abasId;
this.abasId = abasId;
}
public String getBesch()
{
return besch;
}
public void setBesch(String besch)
{
textColumns[1] = besch;
this.besch = besch;
}
public String getNamezwei()
{
return namezwei;
}
public void setNamezwei(String namezwei)
{
textColumns[2] = namezwei;
this.namezwei = namezwei;
}
public String getVkbez()
{
return vkbez;
}
public void setVkbez(String vkbez)
{
textColumns[3] = vkbez;
this.vkbez = vkbez;
}
public String getDescIntern()
{
return descIntern;
}
public void setDescIntern(String descIntern)
{
textColumns[4] = descIntern;
this.descIntern = descIntern;
}
public String getDescDE()
{
return descDE;
}
public void setDescDE(String descDE)
{
textColumns[5] = descDE;
this.descDE = descDE;
}
public String getDescEN()
{
return descEN;
}
public void setDescEN(String descEN)
{
textColumns[6] = descEN;
this.descEN = descEN;
}
public String[] getTextColumns()
{
return textColumns;
}
}
Könnte mir jemand helfen?
Gruß
Micha