2011-09-09 3 views
2

개별 문서 요소에서 getComputedStyle을 지원하는 HTML 문서를 구문 분석 할 때 JSoup에서 문서 트리를 반환합니까?JSoup는 getComputedStyle 또는 이와 동등한 기능을 지원합니까?

내가하고 싶은 것은 HTML 조각에 CSS를 인라인 (inline)하여 조각을 더 큰 HTML 문서에 삽입 할 수 있으며 모든 서식이 보존되지만 문서의 다른 서식은 엉망이되지 않습니다.

필자가 수행 한 연구는 문서의 모든 요소를 ​​반복하면서 각 요소에 대해 getComputedStyle을 호출하고 결과를 요소의 스타일로 할당하여이를 수행 할 수 있다고 제안하는 것 같습니다.

예, 개별 요소에 중복되거나 불필요한 스타일 정보를 넣음으로써 결과 HTML이 매우 부 풀릴 수 있음을 알고 있습니다. 그러나 더 큰 HTML의 가격을 기꺼이 지불합니다. 이처럼 스타일 인라인을 포함 시키면 HTML 조각을 완전히 이식 가능하게하면서 서식을 정확하게 보존 할 수있는 유일한 방법이라는 것을 알 수 있습니다. (그 목적을 달성하기위한 또 다른 제안이 있다면, 나는 모두 귀가 다. :-)

주제로 돌아 가기 ... JSoup에서 getComputedStyle 또는 이와 동등한 것을 사용할 수 없다면 거기에 있습니까? getComputedStyle 또는 이와 동등한 것을 지원하는 다른 Java HTML + CSS 파서?

감사합니다.

답변

0

그건 불가능합니다. Jsoup는 CSS 선택기를 지원하는 HTML 파서 일 뿐이며 HTML 렌더러가 아닙니다.

JavaScript 등을 지원하는 Java 기반 HTML 렌더러 인 Lobobrowser을 살펴볼 수 있습니다. getComputedStyle()이 Lobo에서 지원된다는 것을 모르거나 보장하지 않습니다.

다른 도구가 마음에 들지 않습니다. HtmlUnit은 JavaScript에 액세스하거나 호출 할 수 있기 때문에 가까이에 있습니다. 그러나 some Google resultsgetComputedStyle()이 HtmlUnit에서도 작동하지 않는다고 제안합니다. 결국 실제 HTML 렌더러도 아닙니다.

+1

2009 년부터 Lobo에는 새로운 릴리스가 없으므로 버려진 것으로 보입니다. 아무도 유지하지 않는 제 3 자 코드로이 문제를 해결하고 싶지는 않습니다. –

+0

그래도 상용 제품이 없으면 구현하기 위해해야 ​​할 일은 의사 코드 (의사 코드)라고 생각합니다. 각 임베디드 또는 포함 된 스타일 시트에 대해 HTML에 포함 된 모든 스타일 시트 또는 연결된 스타일 시트를 찾습니다. 또는이 HTML 앞에 추가 노드의 스타일의 시작 부분에 지정된 스타일에 일치하는 모든 노드를 선택 각각의 스타일 지정의 스타일 시트 을 분석 역순으로 연결된 스타일 시트 순서는 나중에 스타일을 확인하는 것이 중요하다 이전보다 우선합니다. 맞습니까? (코드가 사전으로 표시되지 않는 이유를 모르겠 음) –

관련 문제