2010-02-12 2 views
0

죄송합니다 아주 동일한 문제에 대해 문의 해,하지만 지금은 내가 좋아하는 것까지 : 쓰기 DOM4J 문서는 ' 연구 n '

이처럼 보이는 태그를 포함하는 DOM4J 문서를 작성

: XML 파일에
<Field>\r\n some text</Field> 

하지만 \r\n가 작동하지 않습니다 &#13;&#10;

org.dom4j.Document.asXml() 

으로 탈출해야합니다.

답변

1

텍스트 노드에서 리터럴 백 슬래시 -r- 백 슬래시 -n이 아닌 CRLF 시퀀스를 사용한다고 가정하면 XML serialiser가 &#13;&#10;으로 작성하도록 설득 할 수 없습니다. 당신은 필요가 없습니다. 이 문서는 탈출 여부에 상관없이 XML 용어로 절대적으로 동일합니다. &#13;&#10;으로 CRLF 시퀀스를 이스케이프해야하는 유일한 장소는 속성 값입니다.

이 출력을 실제로 생성해야하는 경우 제어 코드를 이스케이프 처리하기 위해 특별한 규칙을 따르는 XML 직렬 변환기를 작성해야합니다. 그러나 외부 도구가 CRLF 시퀀스가있는 XML 요소를 읽을 수 없기 때문에이 작업을 수행하는 경우 텍스트 콘텐츠의 개행 문자를 처리 할 수 ​​없으면 XML 문서가 제대로 파싱되지 않으므로 해당 도구를 수정하는 데 집중해야합니다. .

+0

이것은 탈출에 관한 것이 아니라 텍스트 길이에 관한 것입니다. 문자열은 텍스트가 2048 길지만 XML에 쓰고 난 후 갑자기 2182가됩니다. 나는 그저 이스케이프와 관련이 있다고 생각했습니다. – woezelmann

0

텍스트 노드에 String.replace를 적용하여 트리를 이동하십시오.

+0

'&'가 '& amp'로 이스케이프 처리되기 때문에 – woezelmann

+0

실제 CRLF를 삽입 할 수 없습니까? – Emyr