Share via


<xsl:number> 요소

형식이 지정된 숫자를 결과 트리에 삽입합니다.

<xsl:number
  level = "single" | "multiple" | "any"
  count = Pattern
  from = Pattern
  value = number-expression
  format = { string }
  lang = { nmtoken }
  letter-value = { "alphabetic" | "traditional" }
  grouping-separator = { char }
  grouping-size = { number } />

특성

  • level
    고려해야 할 소스 트리 수준을 지정합니다. 값에는 "single", "multiple" 및 "any"가 있습니다. 기본값은 "single"입니다.

  • count
    해당 수준에서 계산해야 할 노드를 지정하는 패턴(XSLT)입니다. count 특성을 지정하지 않으면 기본값이 현재 노드와 노드 형식이 같은 노드에 일치하는 패턴으로 설정되며 현재 노드 이름이 확장 이름인 경우 현재 노드와 같은 확장 이름을 가진 노드에 일치하는 패턴으로 설정됩니다.

  • from
    계산이 시작되는 위치를 지정하는 패턴(XSLT)입니다.


  • 숫자로 변환하고 결과 트리로 출력할 식을 지정합니다. value 특성을 지정하지 않으면 <xsl:number> 요소는 소스 트리에서 현재 노드의 위치를 기준으로 숫자를 삽입합니다.

  • format
    목록의 각 숫자에 사용할 형식을 지정하는 토큰 시퀀스입니다. 형식 토큰이 없을 경우 "1 2 ... 10 11 12...."와 같은 시퀀스를 생성하는 기본값 1이 사용됩니다. 10 11 12.... 첫 번째 숫자 이후의 각 숫자는 숫자 형식을 지정하는 데 사용되는 형식 토큰 앞의 구분 기호 토큰에 의해 앞의 숫자와 구분됩니다. 구분 기호 토큰이 없을 경우 마침표(".")가 사용됩니다.

    형식 토큰

    생성되는 시퀀스

    1

    1 2 3 4 5 ... 10 11 12 ...

    01

    01 02 03 ... 19 10 11 ... 99 100 101...

    A

    A B C ... Z AA AB AC...

    i

    i ii iii iv v vi vii viii ix x...

    I

    I II III IV V VI VII VIII IX X...

  • lang
    사용할 언어를 지정합니다. lang 값을 지정하지 않으면 시스템 환경에서 언어가 결정됩니다.

  • letter-value
    문자를 사용하는 번호 매기기 시퀀스 간을 명확히 합니다. 일부 번호 매기기 시퀀스는 사전순 시퀀스의 문자에 숫자 값을 할당하며 다른 번호 매기기 시퀀스는 해당 언어에서 일반적인 다른 방법으로 각 문자에 숫자 값을 할당합니다. 이는 영어로 표기되는 경우 형식 토큰 "a" 및 "i"로 지정된 번호 매기기 시퀀스에 해당합니다. 일부 언어에서는 각 시퀀스의 첫 번째 멤버가 같기 때문에 형식 토큰만 사용하면 모호할 수 있습니다. "alphabetic" 값은 사전순 시퀀스를 지정하며 "traditional" 값은 기타 시퀀스를 지정합니다. 기본값은 "alphabetic"입니다.

  • grouping-separator
    10진수 번호 매기기 시퀀스에서 그룹화(예: 천 단위) 구분 기호로 사용되는 구분 기호를 제공합니다. 예를 들어, grouping-separator="," 및 grouping-size="3" 은 1,000,000 형식의 숫자를 생성합니다. grouping-separator 및 grouping-size 특성 중 하나만 지정할 경우에는 무시됩니다.

  • grouping-size
    그룹화 크기(대개 3)를 지정합니다. 예를 들어, grouping-separator="," 및 grouping-size="3"은 1,000,000 형식의 숫자를 생성합니다. grouping-separator 및 grouping-size 특성 중 하나만 지정할 경우에는 무시됩니다.

요소 정보

발생 횟수

제한 없음

부모 요소

xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param, 출력 요소

자식 요소

자식 요소 없음

설명

삽입할 숫자는 value 특성에 포함된 식에 의해 지정됩니다. 식이 계산되고 결과 개체가 숫자로 변환됩니다. 숫자는 정수로 반올림되고 문자열로 변환된 다음 결과 트리에 삽입됩니다.

<xsl:number> 요소는 먼저 level, count 및 from 특성을 사용하여 양의 정수 목록을 생성합니다.

  • level="single"인 경우 count 패턴과 일치하는 상위 또는 자신의 축에서 첫 번째 노드로 이동하며 count 패턴과 일치하는 해당 상위의 이전 형제 수에 1을 더한 값이 포함된 길이 목록을 생성합니다. 이러한 상위 항목이 없을 경우 빈 목록을 생성합니다. from 특성을 지정할 경우 검색된 유일한 상위 항목은 from 패턴과 일치하는 가장 가까운 상위의 하위 항목입니다. 여기서 이전 형제는 이전 형제 축과 같은 의미입니다.

  • level="multiple"인 경우 요소 자체 앞에 문서 순서로 현재 노드의 모든 상위 항목의 목록을 생성합니다. 그런 다음 목록에서 count 패턴과 일치하는 노드를 선택하고 목록의 각 노드를 count 패턴과 일치하는 노드의 이전 형제 수에 1을 더한 값에 매핑합니다. from 특성을 지정할 경우 검색된 유일한 상위 항목은 from 패턴과 일치하는 가장 가까운 상위의 하위 항목입니다. 여기서 이전 형제는 이전 형제 축과 같은 의미입니다.

  • level="any"인 경우 count 패턴과 일치하며, 네임스페이스와 특성 노드를 제외하고 문서 순서로 현재 노드 앞에 있는 모든 문서 수준의 모든 노드(이전 및 상위 또는 자신의 축 멤버의 통합) 및 현재 노드가 포함된 집합에 속해 있는 노드 수를 포함하는 길이 목록을 생성합니다. from 특성을 지정할 경우 from 패턴과 일치하며 첫 번째 노드 뒤 현재 노드 앞에 있는 노드만 고려됩니다.

다음과 같은 언어/번호 매기기 구성표가 지원됩니다. " "형식 토큰"은 format 특성에 해당하며 "언어"는 lang 특성에, "문자 값"은 letter-value 특성에 해당합니다.

설명

형식 토큰

언어

문자 값

영어

0x0031 (1)

해당 없음

해당 없음

대문자

0x0041 (A)

해당 없음

해당 없음

소문자

0x0061 (a)

해당 없음

해당 없음

로마어 대문자

0x0049 (I)

해당 없음

해당 없음

로마어 소문자

0x0069 (i)

해당 없음

해당 없음

러시아어 대문자(키릴 자모)

0x0410

해당 없음

해당 없음

러시아어 소문자(키릴 자모)

0x0430

해당 없음

해당 없음

히브리어 사전순

0x05d0

해당 없음

Alphabetic

전통 히브리어

0x05d0

해당 없음

Traditional

아랍어

0x0623

해당 없음

해당 없음

힌디어 자음

0x0905

해당 없음

해당 없음

힌디어 모음

0x0915

해당 없음

해당 없음

힌디어 숫자

0x0967

해당 없음

해당 없음

태국어 문자

0x0e01

해당 없음

해당 없음

태국어 숫자

0x0e51

해당 없음

해당 없음

일본어 모음(더블바이트)

0x30a2

해당 없음

해당 없음

일본어 가나(더블바이트)

0x30a4

해당 없음

해당 없음

한국어 초성

0x3131

해당 없음

해당 없음

대만어 십진수

0x4e01

"zh-tw"

해당 없음

한국어 십진수

0x4e01

"ko"

해당 없음

아시아어 십진수

0x4e01

다른 언어

해당 없음

아시아어 간지

0x58f1

해당 없음

해당 없음

전통 대만어

0x58f9

"zh-tw"

해당 없음

중국어 번체

0x58f9

다른 언어

해당 없음

중국어 십이지

0x5b50

해당 없음

해당 없음

중국어 십간

0x7532

해당 없음

해당 없음

중국어 육십갑자

0x7532, 0x5b50

해당 없음

해당 없음

한국어 가나다

0xac00

해당 없음

해당 없음

한국어 십진수

0xc77c

해당 없음

해당 없음

한국어 99

0xd558

해당 없음

해당 없음

영어(더블바이트)

0xff11

해당 없음

해당 없음

일본어 모음(싱글바이트)

0xff71

해당 없음

해당 없음

일본어 가나(싱글바이트)

0xff72

해당 없음

해당 없음

특정 번호 매기기 구성표를 명확히 나타내는 데 형식 토큰만으로 충분한 경우 언어나 문자 값을 지정할 필요가 없습니다.

다음은 변환 사양의 몇 가지 예제입니다.

format="&#x30A2;"는 가타카나 번호 매기기를 지정합니다.

format="&#x30A4;"는 "가나" 순서로 가타카나 번호 매기기를 지정합니다.

format="&#x0E51;"은 태국어 숫자로 번호 매기기를 지정합니다.

format="&#x05D0;" letter-value="traditional"은 전통 히브리어 번호 매기기를 지정합니다.

format="&#x10D0;" letter-value="traditional"은 그루지야어 번호 매기기를 지정합니다.

format="&#x03B1;" letter-value="traditional"은 고대 그리스어 번호 매기기를 지정합니다.

format="&#x0430;" letter-value="traditional"은 구 슬라브어 번호 매기기를 지정합니다.

예제

이 예제에서는 우선 영어로 정렬한 다음 로마어 소문자 번호 매기기를 적용한 목록에서 항목의 번호를 매김으로써 <xsl:number> 요소를 사용하는 방법을 보여 줍니다.

XML 파일(items.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="numelem.xsl" ?>
<items>
   <item>Car</item>
   <item>Pen</item>
   <item>LP Record</item>
   <item>Wisdom</item>
   <item>Cell phone</item>
   <item>Film projector</item>
   <item>Hole</item>
   <item>Canopy</item>
   <item>Widget</item>
   <item>Concept</item>
   <item>Null character</item>
</items>

XSLT 파일(numelem.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="items">
   <xsl:for-each select="item">
      <xsl:sort select="."/>
      <xsl:number value="position()" format="1. "/>
      <xsl:value-of select="."/>, 
      <xsl:number value="position()" format="&#x0069;) "/>
      <xsl:value-of select="."/>
      <br/>
   </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

출력

다음은 형식이 지정된 출력입니다.

1. Canopy, i) Canopy 2. Car, ii) Car 3. Cell phone, iii) Cell phone 4. Concept, iv) Concept 5. Film projector, v) Film projector 6. Hole, vi) Hole 7. LP Record, vii) LP Record 8. Null character, viii) Null character 9. Pen, ix) Pen 10. Widget, x) Widget 11. Wisdom, xi) Wisdom

다음은 프로세서 출력입니다.

<?xml version="1.0" encoding="UTF-16"?>1. Canopy,

i) Canopy<br />2. Car,

ii) Car<br />3. Cell phone,

...

xi) Wisdom<br />