質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XSLT

XSLTは、組み立てられた文書を(XML、HTML、そしてプレーンテキストのような)別のフォーマットに変化する為にデザインされたXMLの為の変換用言語です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3690閲覧

テーブル表示をするHTML文書に 変換するXSLファイル

yck3000

総合スコア12

XSLT

XSLTは、組み立てられた文書を(XML、HTML、そしてプレーンテキストのような)別のフォーマットに変化する為にデザインされたXMLの為の変換用言語です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/01/12 02:52

編集2016/01/12 10:12

課題で以下の資料をテーブルで表示するというのですが、何が入力が間違っているみたいで、ご教授お願いいたします。

XSLです
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS" />
<xsl:template match="students">
</xsl:template>
<xsl:template match="students">
<html>
<body>
<table border="3">
<tr>
<th>rank</th>
<th>id</th>
<th>name</th>
<th>point</th>
<th>grade</th>
</tr>
<xsl:apply-templates select="student">
<xsl:sort select="point" data-type="number" order="descending" />
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="student">
<xsl:if test="point >= 60">

<tr> <xsl:apply-templates select="@id" /> <xsl:apply-templates select="name" /> <xsl:apply-templates select="point" /> </tr> </xsl:if> </xsl:template> <xsl:template match="@id"> <td> <id> <xsl:value-of select="." /> </id> </td> </xsl:template> <xsl:template match="name"> <td> <xsl:copy-of select="." /> </td> </xsl:template> <xsl:template match="point"> <td> <xsl:copy-of select="." /> </td> </xsl:template>

</xsl:stylesheet>
XMLです
?xml version="1.0" encoding="Shift_JIS" ?>
<students>
<student id="E99X0001">
<name>一橋太郎</name>
<point>85</point>
</student>
<student id="E99X0002">
<name>二宮恵</name>
<point>75</point>
</student>
<student id="E99X0003">
<name>三島和義</name>
<point>40</point>
</student>
<student id="E99X0004">
<name>四谷明美</name>
<point>87</point>
</student>
<student id="E99X0005">
<name>五木弘樹</name>
<point>60</point>
</student>
<student id="E99X0006">
<name>六本木朱里</name>
<point>82</point>
</student>
<student id="E99X0007">
<name>七星賢治</name>
<point>77</point>
</student>
<student id="E99X0008">
<name>八坂ほのか</name>
<point>62</point>
</student>
<student id="E99X0009">
<name>九鬼雅臣</name>
<point>45</point>
</student>
<student id="E99X0010">
<name>十川登喜子</name>
<point>100</point>
</student>
</students>大体この写真のテーブルのようにしたいです
https://teratail.com/uploads/contributed_images/37e24ae4d977129100ace281c9e15010.jpeg

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2016/01/12 04:39

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
izkn

2016/01/12 09:40

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
ao_love

2016/01/12 10:38

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答2

0

ベストアンサー

何が入力が間違っているみたいで、ご教授お願いいたします。

studentsのテンプレートがダブっていますね.入力の問題ではないと思います.

大体この写真のテーブルのようにしたいです

を拝見して、見出し行を題意として考え、一例として作成してみました.(私はXMLもXSLTスタイルシートもシフトJISは一切使用しませんので御了解ください.)

xml

1 2<?xml version="1.0" encoding="UTF-8"?> 3<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 4 <xsl:output method="html" encoding="utf-8"/> 5 <xsl:template match="students"> 6 <html lang="ja"> 7 <head> 8 <meta charset="utf-8" /> 9 <title>成績表</title> 10 </head> 11 <body> 12 <table border="3"> 13 <tr> 14 <th>順位</th> 15 <th>学生番号</th> 16 <th>氏名</th> 17 <th>点数</th> 18 <th>成績</th> 19 </tr> 20 <xsl:apply-templates select="student"> 21 <xsl:sort select="point" data-type="number" order="descending"/> 22 </xsl:apply-templates> 23 </table> 24 </body> 25 </html> 26 </xsl:template> 27 <xsl:template match="student"> 28 <xsl:variable name="point" select="number(point)"/> 29 <xsl:if test="$point &gt;= 60"> 30 <tr> 31 <td><xsl:value-of select="position()"/></td> 32 <td><xsl:value-of select="string(@id)"/></td> 33 <td><xsl:value-of select="string(name)"/></td> 34 <td><xsl:value-of select="string(point)"/></td> 35 <td> 36 <xsl:choose> 37 <xsl:when test="$point &gt; 85"></xsl:when> 38 <xsl:when test="$point &gt; 75"></xsl:when> 39 <xsl:otherwise></xsl:otherwise> 40 </xsl:choose> 41 </td> 42 </tr> 43 </xsl:if> 44 </xsl:template> 45</xsl:stylesheet>

Chromeではこんな感じになります.

イメージ説明

以上

投稿2016/01/26 05:16

編集2016/01/26 05:18
tmakita

総合スコア69

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

はじめまして。
まず作成したHTMLをF12でコンソールを開き「どの部分にエラーが起きているか」を提示してください。
評価が
下がっているのはその為です。またリンク先を表示する場合はハイパーリンクを使用してください。
質問部分を相手に分かりやすくするのが質問者の最低限のルールかと思います。
模範があるなら難しくないはずです。力になりますので再編集を求めます。

投稿2016/01/13 00:52

takato

総合スコア148

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yck3000

2016/01/13 12:00

返事ありがとうございます。ネットでいろいろ調べてきましたが、HTMLはどうやって変換するのかもわかりませんです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問