2016-10-11 3 views
0

나는이 형식의 게임 테이블이 : 나는 또한이 개 버튼을주문 테이블

<xsl:for-each select="//games"> 
    <tr> 
      <th>GameID</th> 
      <th>GameName</th> 
      <th>EasyLevels</th> 
      <th>HardLevels</th> 
      <th>TotalLevels</th> 
    </tr> 

    <xsl:for-each select="game"> 
     <tr> 
      <td><xsl:value-of select="GameId"/></td> 
      <td><xsl:value-of select="GameName"/></td> 
      <td><xsl:value-of select="count(levels/level[leveldifficult='Easy'])"/></td> 
      <td><xsl:value-of select="count(levels/level[leveldifficult='Hard'])"/></td> 
      <td><xsl:value-of select="count(levels/level)"/></td> 
     </tr> 
    </xsl:for-each> 

</xsl:for-each> 

그리고 :이 테이블에 포함 된 XSLT 파일에 의해 생성 된

ID | GameName | EasyLevels | HardLevels | TotalLevels 

1 Stakeboard 32   28   60 

.... 

을 xslt 파일. 왜냐하면 버튼을 클릭 할 때 각 레벨 수만큼 테이블을 정렬하기가 가능하기를 원하기 때문입니다. 하지만, xslt에서 그렇게하는 법을 모르겠습니다. 어떻게 이것이 가능한지 아십니까?

<button>Order By Number Of EasyLevels</button> 
<button>Order By Number Of HardLevels</button> 

XML은 다음과 같이이다 :

<games> 
    <game> 
     <GameId>1</GameID> 
     <GameName>Game Title</GameName> 
     <levels> 
      <level> 
       <environment>City</environment> 
       <music>city_40</music> 
       <difficult>easy</difficult> 
      </level> 
      <level> 
       .... 
      </level> 
      .... 
     </levels> 
    </game> 
    ´ 
    <game> 
     <GameId>2</GameID> 
     <GameName>Game Title 2</GameName> 
     <levels> 
      <level> 
       <environment>forest</environment> 
       <music>forest_100</music> 
       <difficult>hard</difficult> 
      </level> 
      <level> 
       .... 
      </level> 
      .... 
     </levels> 
    </game> 

</games> 
+0

XSLT에는 사용자 인터페이스가 없습니다. HTML 페이지에 정렬 가능한 표가 있도록하려면 HTML/Javascript에서이를 수행하는 방법을 배우고 XSLT가 필요한 코드를 출력하도록하십시오. –

+0

답변 해 주셔서 감사합니다. 하지만 그 버튼을 클릭하면 일부 xslt 그 테이블을 정렬 적용 할 자바 스크립트와 불가능? – Azz

+0

아마도 그렇지 않습니다. 내가 먼저 XSLT 변환을 시작하기 위해 사용하는 것을 모른다. 일반적으로 XML 소스는 더 이상 사용할 수 없습니다. (1) 서버에 다른 종류의 페이지를 다시 제공하도록 요청하거나 (2) Javascript를 사용하여 기존 표를 다시 정렬 할 수 있습니다. –

답변

1

TL의 박사 : 당신은 sort 기능

XSLT를 찾고있을 수 있습니다 이미 기반으로 정보를 순서 정렬 기능을 가지고있다 정의 된 기준

<xsl:sort 
    select = string-expression 
    lang = { nmtoken } 
    data-type = { "text" | "number" | QName } 
    order = { "ascending" | "descending" } 
    case-order = { "upper-first" | "lower-first" } 
</xsl:sort> 

속성 :

  • 선택 노드의 정렬 키.
  • lang 에 사용 된 언어 알파벳은 정렬 순서를 결정합니다.
  • 데이터 형식 정보의 데이터 형식 (텍스트, 값, QName)입니다.
  • 주문 정렬 순서 (오름차순, 내림차순). 기본값은 "오름차순"
  • 대소 문자 문자열 정렬 순서는 대문자 표시입니다. 기본값은 "upper-first"입니다.
+0

답변 해 주셔서 감사합니다. 주문에 대한 답변이 가능하지만 버튼을 클릭 한 후에 만 ​​주문하는 것은 불가능한 것처럼 보입니다. – Azz