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

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

use trunk,tags,branches

File size: 4.1 KB
Line 
1<xsl:stylesheet version="1.0"
2        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3        xmlns:cs="http://www.smallangles.net/cansas1d"
4        xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
5        >
6
7        <!-- http://www.w3schools.com/xsl/xsl_transformation.asp -->
8
9        <xsl:template match="/">
10                <html>
11                        <head>
12                                <title>example XSL for cansas1d</title>
13                        </head>
14                        <body>
15                                <h1>SAS data in canSAS 1-D format</h1>
16                                <table>
17                                        <tr>
18                                                <th>version:</th>
19                                                <td><xsl:value-of select="cs:SASroot/@version" /></td>
20                                        </tr>
21                                        <tr>
22                                                <th>number of entries:</th>
23                                                <td><xsl:value-of select="count(cs:SASroot/cs:SASentry)" /></td>
24                                        </tr>
25                                </table>
26                                <xsl:apply-templates  />
27                                <hr />
28                        </body>
29                </html>
30        </xsl:template>
31
32        <xsl:template match="cs:SASroot">
33                <xsl:for-each select="cs:SASentry">
34                        <hr />
35                        <h1>Entry: <xsl:value-of select="@name" /></h1>
36                        <xsl:apply-templates />
37                </xsl:for-each>
38        </xsl:template>
39
40        <xsl:template match="cs:Title">
41                <h2><xsl:value-of select="cs:Title" /></h2>
42        </xsl:template>
43
44        <xsl:template match="cs:Run">
45                Run: <xsl:value-of select="cs:Run" /><br />
46        </xsl:template>
47
48        <xsl:template match="cs:SASdata">
49                <h3>SAS data</h3>
50                <table border="2">
51                        <caption>number of points: <xsl:value-of select="count(cs:Idata)" /></caption>
52                        <tr bgcolor="lavender">
53                                <xsl:for-each select="cs:Idata[1]/*">
54                                        <th>
55                                                <xsl:value-of select="name()" /> 
56                                                <xsl:if test="@unit!=''">
57                                                        (<xsl:value-of select="@unit" />)
58                                                </xsl:if>
59                                        </th>
60                                </xsl:for-each>
61                        </tr>
62                        <xsl:for-each select="cs:Idata">
63                                <tr>
64                                        <xsl:for-each select="*">
65                                                <td><xsl:value-of select="." /></td>
66                                        </xsl:for-each>
67                                </tr>
68                        </xsl:for-each>
69                </table>
70        </xsl:template>
71
72        <xsl:template match="cs:SASsample">
73                <h3>Sample: <xsl:value-of select="cs:name" /></h3>
74                <xsl:for-each select="*">
75                        <xsl:value-of select="name()" />: <xsl:value-of select="." /><br />
76                </xsl:for-each>
77        </xsl:template>
78
79        <xsl:template match="cs:SASinstrument">
80                <h3>Instrument: <xsl:value-of select="name" /></h3>
81                <xsl:apply-templates select="cs:SASsource" />
82                <xsl:apply-templates select="cs:SAScollimation" />
83                <xsl:apply-templates select="cs:SASdetector" />
84        </xsl:template>
85
86        <xsl:template match="cs:SASsource">
87                <h4>Source: <xsl:value-of select="@name" /></h4>
88                <xsl:for-each select="*">
89                        <xsl:value-of select="name()" />: <xsl:value-of select="." /><br />
90                </xsl:for-each>
91        </xsl:template>
92
93        <xsl:template match="cs:SAScollimation">
94                <h4>Collimation: <xsl:value-of select="@name" /></h4>
95                <xsl:for-each select="*">
96                        <xsl:value-of select="name()" />: <xsl:value-of select="." /><br />
97                </xsl:for-each>
98        </xsl:template>
99
100        <xsl:template match="cs:SASdetector">
101                <h4>Detector: <xsl:value-of select="name" /></h4>
102                <xsl:apply-templates />
103        </xsl:template>
104
105        <xsl:template match="cs:SASprocess">
106                <h3>Processing: <xsl:value-of select="cs:name" /></h3>
107                date: <xsl:value-of select="cs:date" /><br />
108                <xsl:if test="count(cs:term)!=0">
109                        <DL>
110                                <xsl:for-each select="cs:term">
111                                        <DT>
112                                                <xsl:value-of select="@name" />
113                                                <xsl:if test="@unit!=''">
114                                                        (<xsl:value-of select="@unit" />)
115                                                </xsl:if>
116                                        </DT>
117                                        <DD><xsl:value-of select="." /></DD>
118                                </xsl:for-each>
119                        </DL>
120                </xsl:if>:
121                <xsl:apply-templates  select="cs:SASprocessnote" />
122        </xsl:template>
123
124        <xsl:template match="cs:SASnote">
125                <h3>Note: <xsl:value-of select="@name" /></h3>
126                <xsl:apply-templates />
127        </xsl:template>
128
129        <xsl:template match="cs:sizeDist">
130                <h3>size distribution: <xsl:value-of select="@name" /></h3>
131                <table border="2">
132                        <caption>number of points: <xsl:value-of select="count(cs:row)" /></caption>
133                        <tr bgcolor="lavender">
134                                <xsl:for-each select="cs:row[1]/*">
135                                        <th><xsl:value-of select="name()" /> (<xsl:value-of select="@unit" />)</th>
136                                </xsl:for-each>
137                        </tr>
138                        <xsl:for-each select="cs:row">
139                                <tr>
140                                        <xsl:for-each select="*">
141                                                <td><xsl:value-of select="." /></td>
142                                        </xsl:for-each>
143                                </tr>
144                        </xsl:for-each>
145                </table>
146        </xsl:template>
147
148</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.