jsoup를 사용하여 HTML을 마칩니다. 어떻게 문자열에서 HTML 엔티티를 제거 할 수 있습니다android에서 jsoup로 html 엔티티 제거
<span class="some">‭‭78‬‬</span>
는 단지
<span class="some">78</span>
같이해야한다 : 나는 다음과 같은 종류의 HTML 태그로부터 정보를 추출하는 문제가 무엇입니까?
jsoup를 사용하여 HTML을 마칩니다. 어떻게 문자열에서 HTML 엔티티를 제거 할 수 있습니다android에서 jsoup로 html 엔티티 제거
<span class="some">‭‭78‬‬</span>
는 단지
<span class="some">78</span>
같이해야한다 : 나는 다음과 같은 종류의 HTML 태그로부터 정보를 추출하는 문제가 무엇입니까?
http://jsoup.org/apidocs/org/jsoup/select/Elements.html
을 눌러 컨트롤 + F와 "제거"보살.
이것은 엔티티와 어떤 관련이 있습니까? – RoToRa
jsoup에 익숙하지 않지만 "표준"HTML DOM을 반환하는 "일반"HTML DOM Parser 인 경우 원하는 것은 실제로 가능하지 않습니다. 문제는 일단 DOM이 만들어지면 정상적으로 인코딩 된 문자와 더 이상 엔터티로 표현 된 문자를 구분할 수 없다는 것입니다.
예: <span>A</span>
<span>A</span>
과 완전히 동일한 것으로 간주되고, DOM 번 구별 될 수 없다 - 모두 텍스트 A
와 텍스트 노드를 포함 span
요소이다.
그래서 당신이 할 수있는 루프가 모든 텍스트 노드를 초과하고, 이러한 문자 (안 기관) 교체 검색 : 당신은 원시 문자와 개체를 구별해야하는 경우
void removeInvalidChars(Element element) {
for (Node child : element.childNodes()) {
if (child instanceof TextNode) {
TextNode textNode = (TexNode) child;
textNode.text(textNode.text().replaceAll("\u202C", "").replaceAll("\u202D", ""));
// 202C and 202D are the hex codes for the decimal values 8236 and 8237
} else if (child instanceof Element) {
removeInvalidChars((Element) child);
}
}
}
을, 당신은해야합니다 다른 비 DOM (예 : 이벤트 기반) HTML 구문 분석기를 사용합니다.
html에서 문자열을 가져 오시겠습니까? –
예 jsoup로 압축을 풀면 HTML 엔터티가 없으므로 공간이 필요합니다. – user3568736
원하는 내용은 http://stackoverflow.com/questions/17643512/android-string-encoding-and-html-entities- –