package ***.***
import net.htmlparser.jericho.Element;
import net.htmlparser.jericho.HTMLElementName;
import net.htmlparser.jericho.Source;
import java.net.URL;
import java.util.ArrayList;
public class Parser {
public Parser(){
}
public static ArrayList<TrackingListViewItem> getData(String strURL){
Source source;
ArrayList<TrackingListViewItem> list = new ArrayList<>();
try{
URL url = new URL(strURL);
source = new Source(url);
source.fullSequentialParse();
Element tbody = source.getAllElements(HTMLElementName.TBODY).get(2);
Element tr = null;
int tr_count = tbody.getAllElements(HTMLElementName.TR).size();
for(int i=1; i<=tr_count; i++)
{
list.add(new TrackingListViewItem());
tr = tbody.getAllElements(HTMLElementName.TR).get(i); // tr을 하나씩 돌아가면서 가져옴
list.get(i-1).setDay((tr.getAllElements(HTMLElementName.TD).get(0)).getContent().toString()); //첫번째 td 가져오기 첫번째 td는 day
list.get(i-1).setTime((tr.getAllElements(HTMLElementName.TD).get(1)).getContent().toString());
list.get(i-1).setLocation((tr.getAllElements(HTMLElementName.TD).get(2)).getContent().toString());
list.get(i-1).setStatus((tr.getAllElements(HTMLElementName.TD).get(3)).getContent().getTextExtractor().toString());
}
}catch(Exception e){
e.printStackTrace();
}
return list; // 입력된 배열값을 리턴
}
}
----------------------------------------------------------------------------------------------------------------------
Runnable task = new Runnable() {
public void run() {
list = Parser.getData(parsing_url);
}
};
thread = new Thread(task);
thread.start();
try {
thread.join(); // 쓰레드 작업 끝날때까지 다른 작업들은 대기
} catch (Exception e) {
e.printStackTrace();
}
jericho로 html파싱을 하려는데... 뭐가 문제인건지 리스트에 아무것도 안들어가네요... 파싱을 여러 액티비티에서 해야해서 Parser클래스를 따로 만들었는데.... 첫번째 코드는 파서 클래스 코드이고.... 두번째 코드는 파싱 메소드 호출했을 때 코드입니다...