Разбор HTML не возвращает данных, хотя они читаются
У меня возникла следующая проблема. Я написал фрагмент кода Java, который читает HTML-файл с известной структурой (см. Ниже). Я разбил его на элементы и получил их текст, используя анализатор jericho. Затем, как только я распечатаю текст, чтобы убедиться, что поиск верен, я добавляю каждый элемент в ArrayList(очевидно, поиск верен). Как можно догадаться из структуры html, если элементом i ArrayList является Email, тогда элементом i+1 является значение. Я думаю, что это проблема масштаба, но не могу понять это. Вы можете помочь? Я использую следующий код, чтобы получить значения:
private static void setVariables()
{
count=0;
for(String s:str)
{
if(s.contains("Email"))
{
email=getValue(email, count);
}
}
}
private static String getValue(String var, int count)
{
var=str.get(count+1);
count++;
return var;
}
private static void getElementsText(Source source)
{
List<Element> elementListTd = source.getAllElements(HTMLElementName.TD);
//Scroll through the list of elements "td" page
int i=0;
for (Element element : elementListTd) {
if (element.getAttributes() != null) {
String td = element.getAllElements().toString();
String tag = "td";
// System.out.println("TD: " + td);
// System.out.println(element.getContent());
String contentsAttributes = element.getTextExtractor().toString();
// System.out.println("line "+i+" "+contentsAttributes);
if(!contentsAttributes.isEmpty())
{
str.add(contentsAttributes);
}
}
}
str.add(" ");
setVariables();
}
public static void main(String[] args) throws FileNotFoundException, IOException
{
FileReader fr=new FileReader("32EPS 2012-ABSTRACT ~ 1333134955.html");
BufferedReader br=new BufferedReader(fr);
getTextFromFile(br);
Source source = new Source(html_txt);
getElementsText(source);
}
HTML:
<tr><td class='text11' nowrap>Email</td><td class='text11'>peraueb@dummy.com<td></tr>
<tr><td class='text11' nowrap>Gender</td><td class='text11'>Mr<td></tr>