2014-01-21 1 views
1

저는 EWS Java API 1.2를 사용하여 서버에서 전자 메일을 가져옵니다. 그리고 문제가 : 나는 다음과 같은 속성을 사용 :EWS Java API 1.2 - 문자 본문을 구문 분석하는 가장 좋은 방법

PropertySet itemPropertySet = new PropertySet(BasePropertySet.FirstClassProperties); 
itemPropertySet.setRequestedBodyType(BodyType.Text); 
... 
String body = message.getBody().toString(); 

내가 일반 텍스트로 몸을 얻을이 예에서. 하지만 본문의 서식 (예 : 빈 줄)을 저장해야합니다. BodyType.HTML을 사용할 때 모든 HTML 태그, CSS 스타일 등을 얻습니다. 서식을 저장하고 html 태그, CSS 스타일 등을 제외하고 본문을 가져 오는 가장 좋은 방법은 무엇입니까 답장을 보내 주셔서 감사합니다!

내 솔루션으로 업데이트 : this variant에 대한 정보를 얻었습니다. 내 문제는 그래서 지금은 다음 함수에 의해 BR 및 P 태그를 처리, 빈 줄을이었다

public void handleStartTag(Tag t, MutableAttributeSet a, int pos) //To handle Tag.BODY 
public void handleSimpleTag(Tag t, MutableAttributeSet a, int pos) //To handle Tag.BR and adding '\n' 
public void handleEndTag(Tag t, int pos) //To handle Tag.P (and adding '\n') and Tag.BODY 
public void handleText(char[] data, int pos) 
+0

[링크] (http://stackoverflow.com/questions/18125685/how-do-i-convert-a-formatted-email-into-plain-text-in-java) –

답변

2

그것은 일반 텍스트 나 HTML, there are no other flavours 중 하나입니다. 따라서 유지할 수있는 유일한 '레이아웃'은 줄 바꿈이거나 전체 HTML을 블롭으로 처리해야합니다.

더 좋아하는 사람이 있으면 HTML을 파싱 할 라이브러리를 찾을 수 있지만 다음에 원하는 형식을 결정해야합니다. RTF 로의 HTML은 어쩌면?
(EWS에도 다시 쓰는 경우 HTML에 RTF를 다시해야합니다).

가 BTW 난 당신이 "예를 들어, 빈 줄을"쓰기 놀라게 해요 : 텍스트 가하는 포함 라인 피드 :

(추가 22-1-2014 응답 댓글에 :
내가 편집

- Sample text starts - 
Next line followed by 1 empty line 

Next line followed by 2 empty lines 


- Sample text ends - 

을 텍스트 내가 얻을로 SOAPUI로 검색 : 다음과 같이 Outlook에서 메일

<t:Body BodyType="Text">- Sample text starts - 
Next line followed by 1 empty line 

Next line followed by 2 empty lines 


- Sample text ends -</t:Body> 

줄 바꿈이 사라지면 코드 또는 EWS Java API의 코드를 잘 살펴 보시기 바랍니다.

SOAPUI는 실제 데이터를 쿼리하는 훌륭한 도구이지만 SOAP 요청을 작성하는 방법을 배워야합니다. 나는 Inside Microsoft® Exchange Server 2007 Web Services을 사용했습니다.

+0

답장을 보내 주셔서 감사합니다! 나는 편지에서 빈 줄에 대해 썼다. 왜냐하면 글자 안에는 내 결과 문자열 (_body_)에 여러 개의 새로운 줄로 구분 된 줄이 있기 때문에 나는 단지 하나만있다. \ n ** - 줄 바꿈 기호는 2 개 이상 없다. ** \ n * 다른 하나 옆에 sybmols. –