2013-04-09 3 views
1

HTML을 파싱 할 때 JTidy 및 xpath를 사용하고 있지만 텍스트를 파싱하는 동안 텍스트가 b 태그를 포함 할 수 있으므로 약간의 문제가 발생하므로 반복 할 필요가 없습니다. 자식 노드는 html을로드 한 후에 단순히 'b'태그를 제거합니다.JTidy를 사용하여 HTML에서 원하는 태그 제거

DOM 문서에서 태그를 삭제하려면 어떻게해야합니까? 그것은 예를 들어 의사 코드에 대한

Document doc = tidy.parseDOM(url.openStream(), System.out); 

- 그것은 가능 doc.removeTag('<b>');

인가?

+0

는 B를 교체 할 수 있도록 구성 가능한 옵션 http://tidy.sourceforge.net/docs/quickref.html의 목록입니다 강하지 만 옵션입니다. 우리는 그들 중 일부를 무시할 수 있습니까? –

답변

0

'jdom'으로 태그를 지정했지만 문서가 JDOM이 아닌 DOM 문서입니다.

JDOM 인 경우 비교적 단순한 문서 스캔을 사용하여 요소를 내용으로 대체 할 수 있습니다. 또는 사용자 정의 SAXHandler를 사용하여 처음에 요소 추가를 건너 뛸 수 있습니다. JDOM을 사용

, 당신은, 예를 들어, 같은 것을 할 수있는 : 여기

for (Iterator <Content> it = document.getDescendants(); it.hasNext();) { 
    Content c = it.next(); 
    if ((c instanceof Element) && "b".equals(((Element)c).getName())) { 
    Element e = (Element)c; 
    it.remove(); 
    for (Content k : e.getContent()) { 
     k.detach(); 
     it.add(k); 
    } 
    } 
} 
관련 문제