2012-12-06 6 views
3

내가 간단한 스크립트를, 그 텍스트 영역 필드를 추가 할 때 XML을 I 문제에 직면jquery를 사용하여 줄 바꿈으로 XML을 얻는 방법?

public void writeXmlValues() throws Exception { 
    final HttpServletResponse response = context.getHttpResponse(); 
    response.setContentType("application/xml; charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try 
    { 
     writeXmlValues(out, values); 
    } 
    finally 
    { 
     try 
     { 
      out.close(); 
     } 
     catch (Throwable ignored){} 
    } 
} 

를 생성하는 서버

$.ajax({ 
    url: getUrl(), 
    dataType: "xml" 
}).done(function(xml) { 
    //get values from xml file and fill in html form 
}); 

와 서버 측의 간단한 코드로부터 받았다 값 HTML 양식을 채운다 형태로. 이 필드는 줄 구분 기호가있는 텍스트를 포함 할 수 있으며 XML에 여러 줄 텍스트를 넣을 수 있습니다.

<?xml version='1.0' encoding='UTF-8'?> 
<parameter name="Conclusion">eshgseht 
awegewhw 
agwhg</parameter> 

을하지만 JS 콜백에서 텍스트 (여기가 정확히 같은 코드를입니다) 조금 다른 외모 :

<?xml version='1.0' encoding='UTF-8'?><parameter name="Conclusion">eshgseht awegewhw agwhg</parameter> 

더 선이 더 이상 공급하지가 다음과 같이 결과가 될 것입니다! 이것은 jquery의 잘못이 아닙니다 (Firebug에서 볼 수있는 한 응답은 이미 한 줄짜리 텍스트입니다), 이것은 StAX의 오류가 아닙니다 (적절한 xml을 생성합니다). 나는 무슨 일이 벌어지고 있는지 전혀 모른다. XML 형식을 사용하여 줄 바꿈을 사용할 수 있습니까? 아니면 json이나 다른 것을 사용해야합니다 (이것은 선호되는 방식이 아닙니다).

업데이트 : 마지막으로이 동작에 대한 이유를 발견했습니다. 응답은 setContentType ("application/xml")을 사용하여 text/html로 해석되었습니다. 의견을 보내 주셔서 감사합니다.

+0

관련이 있습니다. http://stackoverflow.com/questions/2986297/line-break-in-xml – Nicktar

답변

1

CDATA를 사용하여 값을 쓰는 것을 고려 했습니까? CDATA의 More infoExample implementation

+0

+1. XML과 같은 XML은 CDATA 식별자에 데이터를 넣지 않는 한 라인 피드를 공백 이외의 것으로 간주하지 않습니다. – davidethell

+0

이 경우 xml도 한 줄 텍스트로 변환되고 줄 바꿈은 사라집니다. – Zkejid

+0

컨트롤러에서받은 CDATA 및 데이터 로그로 코드 변경 사항을 게시/업데이트하십시오. – ch4nd4n