source: 1dwg/trunk/example.xsl @ 14

Last change on this file since 14 was 14, checked in by prjemian, 14 years ago

example stylesheet output now suitable for copy/paste directly into Excel, adjusted namespaces a bit in top-level dir

File size: 5.7 KB
Line 
1<?xml version="1.0"?>
2<xsl:stylesheet version="1.0"
3        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4        xmlns:cs="http://www.smallangles.net/cansas1d"
5        xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
6        >
7
8        <!-- http://www.w3schools.com/xsl/xsl_transformation.asp -->
9        <!-- http://www.smallangles.net/wgwiki/index.php/cansas1d_documentation -->
10
11        <xsl:template match="/">
12                <html>
13                        <head>
14                                <title>example XSL for cansas1d</title>
15                        </head>
16                        <body>
17                                <h1>SAS data in canSAS 1-D format</h1>
18                                <table border="2">
19                                        <tr>
20                                                <th bgcolor="lavender">version:</th>
21                                                <td><xsl:value-of select="cs:SASroot/@version" /></td>
22                                        </tr>
23                                        <tr>
24                                                <th bgcolor="lavender">number of entries:</th>
25                                                <td><xsl:value-of select="count(cs:SASroot/cs:SASentry)" /></td>
26                                        </tr>
27                                </table>
28                                <xsl:apply-templates  />
29                                <hr />
30                        </body>
31                </html>
32        </xsl:template>
33
34        <xsl:template match="cs:SASroot">
35                <xsl:for-each select="cs:SASentry">
36                        <hr />
37                        <br />
38                        <h1>
39                                Entry:
40                                <xsl:if test="@name!=''">
41                                        (<xsl:value-of select="@name" />)
42                                </xsl:if>
43                                <xsl:value-of select="cs:Title" />
44                        </h1>
45                        <TABLE BORDER="2">
46                                <TR>
47                                        <TH>SAS data</TH>
48                                        <TH>Selected Metadata</TH>
49                                </TR>
50                                <TR>
51                                        <TD valign="top"><xsl:apply-templates  select="cs:SASdata" /></TD>
52                                        <TD valign="top">
53                                                <TABLE BORDER="2">
54                                                        <TR bgcolor="lavender">
55                                                                <TH>name</TH>
56                                                                <TH>value</TH>
57                                                                <TH>unit</TH>
58                                                        </TR>
59                                                        <TR>
60                                                                <TD>Title</TD>
61                                                                <TD><xsl:value-of select="cs:Title" /></TD>
62                                                                <TD />
63                                                        </TR>
64                                                        <TR>
65                                                                <TD>Run</TD>
66                                                                <TD><xsl:value-of select="cs:Run" /></TD>
67                                                                <TD />
68                                                        </TR>
69                                                        <TR><xsl:apply-templates  select="run" /></TR>
70                                                        <xsl:apply-templates  select="cs:SASsample" />
71                                                        <xsl:apply-templates  select="cs:SASinstrument" />
72                                                        <xsl:apply-templates  select="cs:SASprocess" />
73                                                        <xsl:apply-templates  select="cs:SASnote" />
74                                                </TABLE>
75                                        </TD>
76                                </TR>
77                        </TABLE>
78                </xsl:for-each>
79        </xsl:template>
80
81        <xsl:template match="cs:SASdata">
82                <table border="2">
83                        <caption>
84                                <xsl:if test="@name!=''">
85                                        <xsl:value-of select="@name" />
86                                </xsl:if>
87                                (<xsl:value-of select="count(cs:Idata)" /> points)
88                        </caption>
89                        <tr bgcolor="lavender">
90                                <xsl:for-each select="cs:Idata[1]/*">
91                                        <th>
92                                                <xsl:value-of select="name()" /> 
93                                                <xsl:if test="@unit!=''">
94                                                        (<xsl:value-of select="@unit" />)
95                                                </xsl:if>
96                                        </th>
97                                </xsl:for-each>
98                        </tr>
99                        <xsl:for-each select="cs:Idata">
100                                <tr>
101                                        <xsl:for-each select="*">
102                                                <td><xsl:value-of select="." /></td>
103                                        </xsl:for-each>
104                                </tr>
105                        </xsl:for-each>
106                </table>
107        </xsl:template>
108
109        <xsl:template match="cs:SASsample">
110                <xsl:if test="cs:name!=''">
111                        <TR>
112                                <TD>Sample_optional_name</TD>
113                                <TD><xsl:value-of select="cs:name" /></TD>
114                                <TD />
115                        </TR>
116                </xsl:if>
117                <xsl:for-each select="*">
118                        <TR>
119                                <TD><xsl:value-of select="name()" /></TD>
120                                <TD><xsl:value-of select="." /></TD>
121                                <TD />
122                        </TR>
123                </xsl:for-each>
124        </xsl:template>
125
126        <xsl:template match="cs:SASinstrument">
127                <xsl:if test="cs:name!=''">
128                        <TR>
129                                <TD>Instrument_name</TD>
130                                <TD><xsl:value-of select="cs:name" /></TD>
131                                <TD bgcolor="#9acd32">section follows</TD>
132                        </TR>
133                </xsl:if>
134                <xsl:apply-templates select="cs:SASsource" />
135                <xsl:apply-templates select="cs:SAScollimation" />
136                <xsl:apply-templates select="cs:SASdetector" />
137        </xsl:template>
138
139        <xsl:template match="cs:SASsource">
140                <xsl:for-each select="*">
141                        <TR>
142                                <TD>SASsource_<xsl:value-of select="name()" /></TD>
143                                <TD><xsl:value-of select="." /></TD>
144                                <TD><xsl:value-of select="@unit" /></TD>
145                        </TR>
146                </xsl:for-each>
147        </xsl:template>
148
149        <xsl:template match="cs:SAScollimation">
150                <xsl:for-each select="*">
151                        <TR>
152                                <TD>SAScollimation_<xsl:value-of select="name()" /></TD>
153                                <TD><xsl:value-of select="." /></TD>
154                                <TD><xsl:value-of select="@unit" /></TD>
155                        </TR>
156                </xsl:for-each>
157        </xsl:template>
158
159        <xsl:template match="cs:SASdetector">
160                <xsl:for-each select="*">
161                        <TR>
162                                <TD>SASdetector_<xsl:value-of select="name()" /></TD>
163                                <TD><xsl:value-of select="." /></TD>
164                                <TD><xsl:value-of select="@unit" /></TD>
165                        </TR>
166                </xsl:for-each>
167        </xsl:template>
168
169        <xsl:template match="cs:SASprocess">
170                <TR>
171                        <TD>SASprocess_name</TD>
172                        <TD><xsl:value-of select="cs:name" /></TD>
173                        <TD bgcolor="#9acd32">section follows</TD>
174                </TR>
175                <TR>
176                        <TD>SASprocess_date</TD>
177                        <TD><xsl:value-of select="cs:date" /></TD>
178                        <TD />
179                </TR>
180                <xsl:if test="count(cs:term)!=0">
181                        <xsl:for-each select="cs:term">
182                                <TR>
183                                        <TD><xsl:value-of select="@name" /></TD>
184                                        <TD><xsl:value-of select="." /></TD>
185                                        <TD><xsl:value-of select="@unit" /></TD>
186                                </TR>
187                        </xsl:for-each>
188                </xsl:if>
189                <xsl:if test="count(cs:SASprocessnote)!=0">
190                        <xsl:if test="cs:SASprocessnote/cs:name!=''">
191                                <TR>
192                                        <TD>SASprocessnote_name</TD>
193                                        <TD><xsl:value-of select="cs:SASprocessnote/cs:name" /></TD>
194                                        <TD bgcolor="#9acd32">section follows</TD>
195                                </TR>
196                        </xsl:if>
197                        <xsl:for-each select="cs:SASprocessnote">
198                                <xsl:if test=".!=''">
199                                        <TR>
200                                                <TD>SASprocessnote_<xsl:value-of select="@name" /></TD>
201                                                <TD><xsl:value-of select="." /></TD>
202                                                <TD />
203                                        </TR>
204                                </xsl:if>
205                        </xsl:for-each>
206                </xsl:if>
207        </xsl:template>
208
209        <xsl:template match="cs:SASnote">
210                <xsl:if test="@name!=''">
211                        <TR>
212                                <TD>SASnote_<xsl:value-of select="@name" /></TD>
213                                <TD><xsl:value-of select="." /></TD>
214                                <TD />
215                        </TR>
216                </xsl:if>
217        </xsl:template>
218
219</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.