2014-11-10 6 views
-2

HTML 클렌징을 일부 수행해야합니다.Java에서 HTML의 중복 공간을 제거하십시오.

많은 중복 된 br 태그가있는 HTML은 지금까지 아무런 결과없이 HtmlCleaner 및 jTidy를 시도했습니다.

예 : 내가 좋아하는 것이 무엇

<br> 
<br> 
<br> 
<br> 
... 

그냥 수동 라인으로 라인을 구문 분석하지 않고이 작업을 수행 할 수있는 단일 <br> 다시

다른 방법을 얻을 수 있습니다?

+0

자세한 내용은 다음과 같습니다. HTML 예제를 제공하십시오. –

+0

기본적으로 반복되는 br 태그 묶음이 하나의 br으로 대체하려고합니다. 질문에 세부 사항을 추가했습니다. – AlexVPerl

+0

당신은 온라인 minifier를 통해 귀하의 html을 보낼 수 다음 일괄 대체 할 : http://www.willpeavy.com/minifier/ –

답변

0

불필요한 <br/> 태그를 제거하려는 경우 여실초가 데이터 보존에 매우 유용하기 때문에 Jericho을 사용하는 간단한 구문 분석 상태 시스템을 사용하여 구문 분석을 수행하는 것이 좋습니다.

스테이트 머신은 마지막 태그를 보았을 뿐이고 마지막 태그가 <br/> 태그이고 다음 태그가 <br/> 태그 인 경우 간단히 생략합니다. 그 간단한 운동을 시도해 보는 것이 좋습니다. 수동 텍스트 파싱 (즉, HTML 파서를 사용하지 않음)은 매우 오류가 발생하기 쉽기 때문에 권장하지 않습니다.

사람들이 <br/> 태그를 사용하는 방법에도 불구하고 명시 적 콘텐츠 태그임을 다시 한번 알려드립니다. 따라서 태그를 제거하면 내용이 변경됩니다. 아마도 일부 HTML을 긁어내는 대신 XML 피드, REST API 또는 데이터베이스 등보다 구조화 된 소스에서 콘텐츠를 가져올 수 있습니다.

+0

당신은 바로 그 내용은 '
'입니다. 하지만 앞뒤 공백 문자를 줄이는 것처럼 줄 바꿈을 제거하는 것이 좋은 경우도 있습니다. –

+0

특정 법적 문서 및 규정 된 사양에는 특정한 흰색 공백이 필요합니다. 사용자가 문서를 입력 할 때 필자가 명시 적으로 새 줄을 지우면 성가신 것으로 보입니다. 이는 제목 필드와 같은 단일 필드에서 입력을 다듬는 것과는 다릅니다. –

+0

@AdamGent입니다. 하지만 StackOverflow조차도 그렇게하는 것 같습니다. 이 바로 주석에서 예를 들어 개행 *이 주석에서 제거됩니다. (예를 들어 '*'와 같은 * 앞뒤에 줄 바꿈이 있습니다. 주석을 편집해도 여전히 있습니다. 그러나 보이지 않습니다.) –

관련 문제