- - PR -
tableを3段組みにしてsortをかけたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-04-17 09:25
下記のxsltによってtableを3段組にしています。
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="​http://www.w3.org/1999/XSL/Transform">​ <xsl:template match="/"> <html> <title>test</title> <body> <table border="1"> <xsl:apply-templates select="cate/tea/name[position() mod 3 = 1]"/> </table> </body> </html> </xsl:template> <xsl:template match="cate/tea/name"> <tr> <td><xsl:value-of select="."/></td> <td><xsl:value-of select="following-sibling::name[1]"/></td> <td><xsl:value-of select="following-sibling::name[2]"/></td> </tr> </xsl:template> </xsl:stylesheet> こんな感じの出力です。 <table> <tr> <td>あかぎ</td> <td>さとみ</td> <td>ゆめお</td> </tr> <tr> <td>かさお</td> <td>らの</td> <td>でお</td> </tr> 省略 </table> xmlは下記です。 <cate> <tea> <name>あかぎ</name> <name>さとみ</name> <name>ゆめお</name> <name>かさお</name> <name>らの</name> <name>でお</name> <name>くる</name> <name>もも</name> <name>しょう</name> <name>さめお</name> <name>たさお</name> <name>うらの</name> <name>こでお</name> <name>さくる</name> <name>れもも</name> <name>きょう</name> </tea> </cate> この3段組みをしたまま、 nameを名前順にソートしたいのですが、 うまくいきません。 あかぎ、かさお、くる、といった左の列内だけで、 ソートされてしまい、次にそれぞれの後続の兄弟ノードが、 真ん中の列にでてしまいます。 ちゃんと、xmlデータ順(あかぎ、さとみ、ゆめお、かさお・・・)に3段組みを表現したいのですが、 無理なのでしょうか。 どなたかご協力お願いします。 | ||||
|
投稿日時: 2007-04-18 10:52
どんな結果を求めているのかいまいち分かりませんでしたが、ソートした結果をテーブルに3列に出せばいいのでしょうかね?
やっつけで作ってみましたが、trタグの出し方がいまいちなのでもっとよいやり方があると思います。私が書いた程度のxsltなら、@ITのxsltの記事を読めば書けますよ。
----編集 &lt;と&gt;がデコードして表示されちゃったので修正。&を全角にしました。 [ メッセージ編集済み 編集者: かめたろ 編集日時 2007-04-18 11:00 ] | ||||
|
投稿日時: 2007-04-18 11:36
ありがとうございました!
考え方はわかりましたので、工夫してみます! |
1