다음을 통해 공유


<xsl:preserve-space> 요소

elements 특성으로 지정된 대로 이 요소에 나타날 수 있는 공백만 있는 텍스트 노드를 유지합니다.

<xsl:preserve-space
  elements = tokens />

특성

  • elements
    필요한 특성입니다. 값은 공백만 있는 텍스트 노드를 유지해야 할 노드의 이름 토큰 목록이며 공백으로 구분되어 있습니다.

요소 정보

발생 횟수

제한 없음

부모 요소

xsl:stylesheet, xsl:transform

자식 요소

자식 요소 없음

설명

<xsl:preserve-space> 요소는 지정된 요소에서 공백만 있는 텍스트 노드를 유지합니다. 공백 문자와 공백이 아닌 문자가 모두 포함된 텍스트 노드의 공백 문자에 영향을 주지 않습니다. 여기서 공백만 있는 텍스트 노드를 유지한다는 것은 소스 문서의 노드가 결과 문서에 그대로 유지된다는 것을 의미합니다. <xsl:strip-space>는 이와 정반대로 작업을 수행합니다. 즉, 지정된 노드에서 공백만 있는 텍스트 노드를 제거합니다.

기본적으로 공백만 있는 텍스트 노드는 모두 유지됩니다. 요소 이름이 <xsl:strip-space> 요소의 이름 테스트와 일치할 경우 공백을 유지하는 요소 이름 집합에서 이 이름이 제거됩니다. 요소 이름이 <xsl:preserve-space> 요소의 이름 테스트에 일치할 경우 공백을 유지하는 요소 이름 집합에 다시 추가됩니다.

자세한 내용은 www.w3.org/TR/xslt에 있는 XSLT W3 Recommendation의 3.4단원 "Whitespace Stripping"을 참조하십시오.

예제

다음 예제에서는 <xsl:preserve-space><xsl:strip-space>를 사용하여 공백 전용 텍스트 노드를 유지 및 제거하는 결과를 보여 줍니다.

XML 파일(source.xml)

XSLT 파일(trans.xsl)

실습

  1. 위의 코드를 복사하고 로컬 드라이브의 적절한 파일에 저장합니다.

  2. 다음과 같이 명령 프롬프트에서 Command Line Transformation Utility(msxsl.exe)를 사용하여 XSLT 변환을 시작합니다.

    msxsl source.xml trans.xsl

    ms256144.Important(ko-kr,VS.100).gif 참고:
    Internet Explorer에서 변환을 시작하지 마십시오.브라우저는 공백을 제거하는 작업을 실행하며 이는 XSLT 사양과 호환되지 않습니다.그러므로 XLST 변환에서 잘못된 동작을 표시할 수 있습니다.

출력

다음은 표준 출력입니다.

code elements:

code # 1

has 1 text().

"---"

code # 2

has 1 text().

"--;"

code # 3

has 1 text().

"NThis-is-a-Tsample-codeTNTN"

text elements:

text # 1

has 0 text().

""

text # 2

has 1 text().

"--;"

text # 3

has 1 text().

"NThis-is-a-Tsample-textTNTN"

변환은 첫 번째 <code> 요소에 대해 텍스트 노드 하나를 생성하지만 첫 번째 <text> 요소에 대해서는 텍스트 노드를 생성하지 않습니다. 이는 이 두 요소에 스타일시트 시작 부분에 나열되어 있는 <xsl:preserve-space><xsl:strip-space> 명령에 따라서 <code>에서 유지되지만 <text>에서는 제거되는 공백 전용 텍스트 노드가 있기 때문입니다. 각각의 두 번째와 세 번째 요소는 이러한 명령의 영향을 받지 않아 공백 전용이 아닌 텍스트 노드를 나타냅니다.

참고 항목

참조

<xsl:strip-space> 요소