2013-05-23 4 views
0

DOM 구조에서 CSS 선택 : 나는 IDS 'MARK1와 스팬 요소 사이에 배치되는'속성 '속성, 모든 범위의 요소를 선택하고 싶은 Jsoup 나는 다음과 같은 HTML을 가지고

some text <b>some bold text</b> 
<span property='some property1> 
some semantic term2</span> 
<p><span id='mark1'></span> 
some text <i>some italic text</i></p> 
<span property='some property2'> 
some semantic term</span> 
<span id='mark2'></span> 

'및'mark2 '(다음은 제거해야하는 내 기술 책갈피입니다.) 및 unwrap.

Java Jsoup에서 구현하는 가장 좋은 방법은 doc.select 함수를 사용하는 것입니다. 하지만 올바른 CSS 쿼리를 만들 수 없습니다 (이 두 요소 사이에 속성 특성이있는 모든 범위 요소).

some text <b>some bold text</b> 
    <span property='some property1> 
    some semantic term2</span> 
    <p> 
    some text <i>some italic text</i></p> 
    some semantic term 

어떤 아이디어 :

예상되는 결과 (책갈피를 제거한 후)? 어쩌면 E ~ F.와 같은 것일 수도 있습니다.

+0

이것은 단지 예일 뿐이다. 나는 일반적인 해결책을 찾고있다. –

+0

그들은 모두 같은 수준일까요? 즉, 같은 부모의 자녀가 될 수 있습니까? – acdcjunior

+0

아니요 - 해당 직위는 무료입니다. 나는 설명 할 것이다 : WYSIWYG 편집기에서 사용자의 선택에 따라 책갈피를 삽입한다. 그래서 그는 그가 원하는 것을 선택할 수 있습니다. 쓸모있는 CSS 쿼리가 없으며 몇 가지 지독한 재귀를 구현해야합니다 .-). –

답변

0

Jsoup selector syntax은 두 임의의 위치에있는 태그 사이의 모든 태그를 선택하기에 충분하지 않습니다.

그러나 두 개의 책갈피 요소 사이에 방문한 모든 요소를 ​​수집하는 NodeVisitor 구현과 함께 NodeTraverser 클래스를 사용할 수 있습니다. (이것은 당신의 코멘트에서 언급 된 "끔찍한 재귀"보다 쉽다.)

관련 문제