2012-11-07 2 views
0

Excel에서 추가로 읽히고 줄 바꿈 문제가 발생하도록 스프레드 시트 ML을 생성하기 위해 XSLT를 작성하려고합니다. 셀 데이터에 개행을 추가해야합니다. 나는 줄 바꿈의 엑셀 아이디어를 확인하기 위해 Excel에서 샘플을 만든 다음 가지고 :Excel에서 읽을 때 스프레드 시트 ML의 새 줄

<Data>abc&#10;def</Data> 

여기 &#10; 참조 개행이며,이 파일을 다시 읽을 때 Excel에서 그것을 잘 이해합니다. 이 줄 바꿈을 표현하기 위해 엑셀 방법에 동의하지 않는 것

<Data>abc 
def</Data 

: 내 XML 그렇게 보이는, 그래서 내가 대신 진정한 0x0A (LF) 문자를 얻을, 자연, XSLT와 같은를 생산하기 위해 노력하지만, Excel에서 파일을 열면 개행 문자가 표시되지 않습니다.

나는이 문제를 연구하려고 시도했지만 실제로는 해결책을 제시하지 않고 Excel에서 버그 일 수 있다고 제안하는 following short discussion을 제외하고는 아무 것도 얻지 못했습니다. (UPDATE : 필자는 스펙이 "인코딩 사고"라고 부르고 XML 파서가 Excel과는 달리 의존해서는 안된다는 것을 이해합니다.

이 문제를 해결할 방법이 있습니까? LF 문자 대신에 &#10; 문자를 출력 하시겠습니까? 아니면 이것을 다른 방법으로 해결할 수 있을까요?

답변

1

예 Excel에는 LF 문자와 그 문자에 대한 문자 참조 &#10;을 구별하는 고유 한 방법이 있습니다.

문자 참조를 강요하고 싶다면 XSLT 1.0으로 생각하면 <xsl:text disable-output-escaping="yes"><![CDATA[&#10;]]></xsl:text>은 무차별 방식입니다.

+0

불행하게도, 이것은 나에게 효과가 없습니다 : 실제의 LF 문자가'! [CDATA []]'로 감싸집니다. –

+0

어떤 XSLT 프로세서를 사용합니까? 어떻게 사용합니까? ''올바른 구문을 사용하고 있습니까? 여러분의 코멘트에있는'! [CDATA []]'는'!'앞에'<'를 잊었다는 것을 암시합니다. –

+0

죄송합니다, 그것은 나빴습니다; 나는'xmllint'를 통해 그것을 파이핑 중이었고 엔티티를 먹었습니다. 예, 작동합니다! :) 많은 감사합니다. –

관련 문제