2016-10-11 9 views
0

私は、この形式のゲームでテーブルを持っている:受注テーブル困難

ID | GameName | EasyLevels | HardLevels | TotalLevels 

1 Stakeboard 32   28   60 

.... 

このテーブルには、含まれているXSLTファイルによって生成されました:

<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> 

そして私はまた、2つのボタン持ち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

あなたの答えをありがとう。しかし、ボタンがクリックされたときにjavascriptで不可能なのは、テーブルをソートするいくつかのxsltに適用されますか? – Azz

+0

おそらくそうではありません。私はあなたが最初にXSLT変換を開始するために使用するものを知りません。通常、XMLソースはこれ以降使用できなくなります。 (1)サーバーに別のソートでページを再提供するように依頼するか、または(2)Javascriptを使用して既存のテーブルを再ソートするかのいずれかを選択できます。 –

答えて

1

TLのDR:あなたは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