2009-06-11 4 views
2

br 또는 span .../span 태그 또는 다른 HTML 문자/엔티티를 포함 할 수있는 문자열이 있습니다. 모든 것을 제거하고 나머지 UTF-8 문자를 얻는 강력한 방법이 필요합니다. 이상적으로는 크로스 플랫폼이어야합니다. 이 같은C++ : 문자열에서 모든 HTML 서식을 제거 하시겠습니까?

뭔가 이상적 일 것이다 :

http://snipplr.com/view/15261/python-decode-and-strip-html-entites-to-unicode/

하지만 또한 태그를 제거합니다.

답변

0

단순히 요소를 삭제하거나 HTML을 일반 텍스트로 변환 하시겠습니까?

옵션 1 : 당신은 그냥 모든 차례 나오는 삭제할하고 정규식 검색을 사용하고 대체 할 수있는 경우

.

옵션 2 :

, 내가 생각할 수있는 가장 간단하고 강력한 방법은 브라우저를 사용하는 것입니다 당신이 정말로 포맷 한 페이지를 가지고 일반 텍스트로 변환되어 수행하려는 경우, 또는 일부 브라우저 엔진을 사용하여 실제로 HTML을 구문 분석하고 텍스트를 추출 할 수 있습니다.

IOW 이것은 웹 페이지를 브라우저에서 클립 보드로 복사 한 다음 메모장에 붙여 넣는 것과 같습니다.

2

귀하의 요구 사항은 얼마나 엄격합니까? 간단한 2- 상태 FSA가해야합니다. READCHAR 상태에서 시작하십시오. 그 상태에서 '<'을 읽을 때마다 READTAG 상태로 전환하십시오. 그렇지 않으면 문자를 결과 문자열에 씁니다. READTAG 상태에 있고 '>'를 읽을 때마다 READCHAR 상태로 다시 전환합니다.

편집 : 엔티티에 대한 부분을 놓쳤습니다. 당신은 그것에 대해서 READENTITY 상태를 신경 쓰지 않을 것입니다. 전환 할 때 코드를 해당 UTF-8 문자로 변환 할 수도 있습니다.

+0

주의,보다 상태가 요구된다. – strager

+0

사실입니다. 그래서 나는 그의 요구 사항이 얼마나 엄격한 지 물었습니다. 태그에서 '>'는 거의 발생하지 않지만 확실히 발생할 수 있습니다. 마찬가지로 잘못된 HTML을 처리하거나 특정 태그에 대해 특별한 조치를 취해야하는 경우 알고리즘이 더 복잡해질 필요가 있습니다. –

+0

OP는 "모든 경우에서 표준을 완전히 이해한다고 가정 할 때 인간이 기대하는대로 작동합니다"라는 의미의 "강력한"상태를 나타냅니다. 따라서 속성에서 ">"을 처리해야 할 수 있습니다. – strager

1

나는 당신이 원하는 것을 분명하지 않습니다.

입력

: 이 "

이 출력해야 많은 라인에 문자열 텍스트 &의

입니다 : 속성 ">"를 포함 할 수 있기 때문에

1) This is a string <br> <br /> of text & on many lines " (Replace &amp; with & and &quot; with ") 
2) This is a string of text & on many lines " 
+0

그는 반대를 원합니다. "모든 HTML 서식 제거"질문을 참조하십시오. – strager

+0

"이와 같은 것이 이상적 일 것입니다 : http://snipplr.com/view/15261/python-decode-and-strip-html-entites-to-unicode/ 하지만 태그도 제거됩니다." 하지만 태그를 제거하고 싶지 않다고 생각됩니다. – chocojosh

관련 문제