2012-02-15 7 views
0

누구든지 펄 모듈 HTML::TableExtract과 비슷한 자바 용 라이브러리를 제안 할 수 있습니까? 이 모듈의 주목할만한 기능 중 하나는 사용자가 깊이와 수를 사용하여 중첩 테이블을 쉽게 식별하는 데 도움이 될 수 있다는 것입니다. JSoup, HTML 파서 및 HTML Unit과 같은 라이브러리를 사용했습니다. 그러나 지금까지는 HTML :: TableExtract 모듈과 아무 관련이 없습니다. 그럼 여기있는 사람이라면 Java에서이 모듈과 비슷한 것을 제안 해 주실 수 있습니까? 왜냐하면 내가 뭘하려고하는지는 모든 테이블에서 키워드를 찾는 것이고 그것이 존재한다면 나는 표를 추출 할 것입니다. 중첩 된 테이블의 경우, 나는 부모 테이블이 아닌 키워드로도 테이블을 추출하고 싶습니다. 의 Łukasz Rżanek @ 사전HTML :: TableExtract에 상응하는 코드

감사드립니다 내가 JSoup를 사용하여 그렇게 할 수있는 방법 내용 3.있는 경우에만 테이블을 추출 할 다음 아래의 HTML 코드

<html> 
<table border=3 cellpadding=10> 
<tr> 
    <td valign=top> 
    Content 1 
    </td><td> 
    Content 2<p> 

    <table border=1> 
    <tr> 
     <td>Content 3</td> 
     <td>Content 4</td> 
    </tr><tr> 
     <td>Content 5</td> 
     <td>Content 6</td> 
    </tr> 
    </table><p> 

    Content 7 
    </td> 
</tr> 
</table> 
</html> 

을 고려하시기 바랍니다?

+1

JSoup 선택기 및/또는 DOM 탐색에 문제가 있습니까? 그것은 몇 줄의 코드입니다! –

+0

JSoup 만 사용하고 있습니다. 하지만 문제는 중첩 된 테이블 (자식 테이블)에있는 키워드가 그 자식 테이블을 추출 할 수 없다는 것입니다. JSoup을 처음 사용하기에 적절한 접근 방식을 사용하지 않을 수도 있습니다. 그래서 다른 접근법이 있다면 알려주세요. – Allwyn

+0

당신은 HTML 코드 또는 뭔가를 제공 할 수 있습니까? JSoup에서 evrything이 지금 당장은 쉬운 것처럼 보이기 때문에 나는이 문제를 정말로 이해할 수 없습니까? –

답변

1

추가 논리를 추가해야 할 수도 있습니다.

체크 & 내가 원하는대로 알려 주시겠습니까?

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) throws IOException { 
    // TODO code application logic here 
    Document doc = Jsoup.parse(new File("**//HTML File Path//**"), "utf-8"); 
    Elements elements = doc.getElementsContainingOwnText("**//Text to Search//**"); 
    for(Element element : elements) { 
     Element table = getImmediateParentTable(element); 
     System.out.println(table.outerHtml()); 
    } 
} 

public static Element getImmediateParentTable(Element element) { 
    while(element.tagName().equals("table")) { 
     return element; 
    } 
    return getImmediateParentTable(element.parent()); 
} 
+0

감사합니다. – Allwyn