課題で、XSL変換で、XML内のデータを絞り込んで該当するデータを表示、プラス、該当するデータの数をカウントするxslを製作しています。出来ないのは、親要素のタグが表示されない点と、カウントをどこに入れればいいのかがわかりません。コードは下記になります。studentsの中にstudentがあり、studentの属性がid、子がnameとpointで、ポイントが60以下のデータを見つけるというものです。この表記だと、課題の完成図には記載されている<students>が表示されません。studentsから指定して、studentsで同様の絞り込みを試すなどをしましたが、Studentからにしかなりません。
また、コードのどこにcountを入れればいいのか、わかりません。絞り込みを行っているstudentの部分に入れてみましたが、カウントはゼロでした。
絞り込みとカウントをどう合わせていれればいいのか、ネットや教科書を見てもわからず困っています。
もう一つ、ここにtableを加えて表示する課題もあり、出来れば、どこに入れればいいのか教えていただきたいです。
XMLが下記です
lang
1<students> 2 <student id="E99X0001"> 3 <name>一橋太郎</name> 4 <point>85</point> 5 </student> 6 <student id="E99X0002"> 7 <name>二宮恵</name> 8 <point>75</point> 9 </student> 10 <student id="E99X0003"> 11 <name>三島和義</name> 12 <point>40</point> 13 </student> 14 <student id="E99X0004"> 15 <name>四谷明美</name> 16 <point>87</point> 17 </student> 18 <student id="E99X0005"> 19 <name>五木弘樹</name> 20 <point>60</point> 21 </student> 22 <student id="E99X0006"> 23 <name>六本木朱里</name> 24 <point>82</point> 25 </student> 26 <student id="E99X0007"> 27 <name>七星賢治</name> 28 <point>77</point> 29 </student> 30 <student id="E99X0008"> 31 <name>八坂ほのか</name> 32 <point>62</point> 33 </student> 34 <student id="E99X0009"> 35 <name>九鬼雅臣</name> 36 <point>45</point> 37 </student> 38 <student id="E99X0010"> 39 <name>十川登喜子</name> 40 <point>100</point> 41 </student> 42</students> 43コード
XSLが下記です。
lang
1 2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 <xsl:output method="xml" encoding="Shift_JIS" /> 4 <xsl:template match="/"> 5 <root> 6 <xsl:apply-templates select="students/student[point < 60]" /> 7 </root> 8 </xsl:template> 9 <xsl:template match="students"> 10 <xsl:apply-templates select="student" /> 11 </xsl:template> 12 <xsl:template match="student"> 13 <xsl:copy> 14 <xsl:apply-templates select="@id" /> 15 <xsl:apply-templates select="name" /> 16 <xsl:apply-templates select="point" /> 17 </xsl:copy> 18 </xsl:template> 19 <xsl:template match="@id"> 20 <id> 21 <xsl:value-of select="." /> 22 </id> 23 </xsl:template> 24 <xsl:template match="name"> 25 <xsl:copy-of select="." /> 26 </xsl:template> 27 <xsl:template match="point"> 28 <xsl:copy-of select="." /> 29 </xsl:template> 30</xsl:stylesheet>
完成イメージがこれです。
![完成イメージ]WIDTH:600
追記:課題の一文を見逃していました。<fugoukaku>の挿入も出来ていません。
回答1件
あなたの回答
tips
プレビュー