2012-12-05 1 views
1

저는 Jericho 자바 클라이언트 라이브러리를 사용하여 모든 href 링크를 파싱합니다. 내가하고 싶은 일은 특정 ID가 포함 된 출처의 모든 링크를 건너 뛰거나 건너 뛸 수 있습니다. 나는 몇 가지를 시도하고, 내 솔루션은 아니지만, 꽤 기본적으로 나는 이런 식으로 뭔가를 확인하여이 작업을 수행 할 수 있습니다 :특정 ID로 요소를 필터링하거나 무시하면서 Jericho와의 모든 링크를 Java에서 구문 분석하는 방법은 무엇입니까?

for(Element element : elements) { 
    if (element.getAllStartTags().toString().contains("skip_me")) { 
    // do something 
    } 
} 

하지만 난 청소기 솔루션을 선호합니다. 의이 소스입니다 가정 해 봅시다 :

<td> 
<a href="http://www.yahoo.com" id="skip_me" /> 
</td> 
<td> 
<a href="http://www.google.com" /> 
</td> 

그냥 작은 조각,하지만 난이 마지막 날을 반환하려면 그냥 "www.google.com"입니다. 어떤 도움을 주셔서 감사합니다. 감사.

for(Element element : elements) 
{ 
    if(element.getStartTag().getName() == HTMLElementName.A) // Select only 'a'-tags 
    { 
     final String id = element.getAttributeValue("id"); // Get Attribute 'id' 

     if(id == null || !id.equals("skip_me")) // Process element if it has a.) no id (null) or b.) the id is not 'skip_me' 
     { 
      System.out.println(element); // Process Element 
     } 
    } 
} 

출력 :
이 (당신의 HTML을 사용)

<a href="http://www.google.com" /> 

답변

1

다른 솔루션입니다210
1
Another solution:  

List<Element> elements = source.getAllElements("a");   
for(Element element : elements) 
    { 
     final String id = element.getAttributeValue("id"); 
     if(id == null || !id.equals("skip_me")) 
     { 
      System.out.println(element.toString());  
     } 
    } 

출력 :

여기
관련 문제