1
JSext 파서를 사용하여 HTML 문서의 특정 부분 (정규식으로 정의 됨)을 찾고 발견 된 문자열을 <span>
태그로 감싸서 강조 표시합니다.JSOUP에서 android 용 Regex를 사용하여 강조 표시
public String highlightRegex() {
Document doc = Jsoup.parse(htmlContent);
NodeTraversor nd = new NodeTraversor(new NodeVisitor() {
@Override
public void tail(Node node, int depth) {
if (node instanceof Element) {
Element elem = (Element) node;
StringBuffer obtainedText;
for(Element tn : elem.getElementsMatchingOwnText(pat)) {
Log.e("HELLO", tn.baseUri());
Log.e("HELLO", tn.text());
obtainedText = new StringBuffer(tn.ownText());
mat = pat.matcher(obtainedText.toString());
int nextStart = 0;
while(mat.find(nextStart)) {
obtainedText = obtainedText.replace(mat.start(), mat.end(), "<span>" + mat.group() + "</span>");
nextStart = mat.end() + 1;
}
tn.text(obtainedText.toString());
Log.e("HELLO" , "AFTER:" + tn.text());
}
}
}
@Override
public void head(Node node, int depth) {
}
});
nd.traverse(doc.body());
return doc.toString();
}
그것은 작업을 수행하지만, 태그 <span>
는 웹보기 내부 볼 수 있습니다 - 여기에 강조 표시를하지 내 코드입니다. 내가 도대체 뭘 잘못하고있는 겁니까?