HtmlCleaner
에디터에 삽입된 이미지를 경로를 추출해야 하는 상황이다.
substring, indexOf 신공으로 간단히 버그작렬에 제대로 돌아가는지 나조차 신뢰할 수 없는 로직을 짤 수 있지만, 역시 누군가 만들어놓은 바퀴를 가져다 쓰는게 안전빵에 시간도 절약되고
뭔가 우아해보이지!
HtmlCleaner를 이용해 초간단으로 추출해보자.
(최초 나오는 이미지 하나만 추출해야만 해서 첫번째 이미지 찾은 다음에 false 리턴했다.)
final StringBuffer image = new StringBuffer();
HtmlCleaner cleaner = new HtmlCleaner();
TagNode node = cleaner.clean( "여기 이미지 태그 추출할 문자열" );
node.traverse(new TagNodeVisitor() {
public boolean visit(TagNode parentNode, HtmlNode node) {
if (node instanceof TagNode) {
TagNode tagNode = (TagNode) node;
String name = tagNode.getName();
if ( "img".equals(name) ) {
tagNode.removeAllChildren();
image.append(tagNode.getAttributeByName("src"));
return false;
}
}
return true;
}
});
System.out.println("image:" + image.toString());