- Timestamp:
- Mar 18, 2008 3:10:04 PM (13 years ago)
- Location:
- 1dwg/trunk/examples
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
1dwg/trunk/examples/xslt/example.xsl
r14 r16 12 12 <html> 13 13 <head> 14 <title> example XSL for cansas1d</title>14 <title>SAS data in canSAS 1-D format</title> 15 15 </head> 16 16 <body> 17 17 <h1>SAS data in canSAS 1-D format</h1> 18 <small>generated using <TT>example.xsl</TT> from canSAS</small> 19 <BR /> 18 20 <table border="2"> 19 21 <tr> 20 <th bgcolor="lavender"> version:</th>22 <th bgcolor="lavender">canSAS 1-D XML version:</th> 21 23 <td><xsl:value-of select="cs:SASroot/@version" /></td> 22 24 </tr> … … 25 27 <td><xsl:value-of select="count(cs:SASroot/cs:SASentry)" /></td> 26 28 </tr> 29 <xsl:if test="count(/cs:SASroot//cs:SASentry)>1"> 30 <!-- if more than one SASentry, make a table of contents --> 31 <xsl:for-each select="/cs:SASroot//cs:SASentry"> 32 <tr> 33 <th bgcolor="lavender">SASentry-<xsl:value-of select="position()" /></th> 34 <td> 35 <A HREF="#SASentry-{generate-id(.)}"> 36 <xsl:if test="@name!=''"> 37 (<xsl:value-of select="@name" />) 38 </xsl:if> 39 <xsl:value-of select="cs:Title" /> 40 </A> 41 <xsl:if test="count(cs:SASdata)>1"> 42 <!-- if more than one SASdata, make a local table of contents --> 43 <xsl:for-each select="cs:SASdata"> 44 <xsl:text> | </xsl:text> 45 <A HREF="#SASdata-{generate-id(.)}"> 46 <xsl:choose> 47 <xsl:when test="@name!=''"> 48 <xsl:value-of select="@name" /> 49 </xsl:when> 50 <xsl:otherwise> 51 SASdata<xsl:value-of select="position()" /> 52 </xsl:otherwise> 53 </xsl:choose> 54 </A> 55 </xsl:for-each> 56 </xsl:if> 57 </td> 58 </tr> 59 </xsl:for-each> 60 </xsl:if> 27 61 </table> 28 62 <xsl:apply-templates /> … … 36 70 <hr /> 37 71 <br /> 72 <A NAME="#SASentry-{generate-id(.)}" /> 38 73 <h1> 39 Entry:40 <xsl:if test="@name!=''">41 (<xsl:value-of select="@name" />)42 </xsl:if>43 <xsl:value-of select="cs:Title" />74 SASentry<xsl:value-of select="position()" />: 75 <xsl:if test="@name!=''"> 76 (<xsl:value-of select="@name" />) 77 </xsl:if> 78 <xsl:value-of select="cs:Title" /> 44 79 </h1> 80 <xsl:if test="count(cs:SASdata)>1"> 81 <TABLE BORDER="2"> 82 <CAPTION>SASdata contents</CAPTION> 83 <xsl:for-each select="cs:SASdata"> 84 <TR> 85 <TH>SASdata-<xsl:value-of select="position()" /></TH> 86 <TD> 87 <A HREF="#SASdata-{generate-id(.)}"> 88 <xsl:choose> 89 <xsl:when test="@name!=''"> 90 <xsl:value-of select="@name" /> 91 </xsl:when> 92 <xsl:otherwise> 93 SASdata<xsl:value-of select="position()" /> 94 </xsl:otherwise> 95 </xsl:choose> 96 </A> 97 </TD> 98 </TR> 99 </xsl:for-each> 100 </TABLE> 101 </xsl:if> 102 <br /> 45 103 <TABLE BORDER="2"> 46 104 <TR> … … 80 138 81 139 <xsl:template match="cs:SASdata"> 140 <A NAME="#SASdata-{generate-id(.)}" /> 82 141 <table border="2"> 83 142 <caption> … … 108 167 109 168 <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> 169 <TR> 170 <TD>SASsample</TD> 171 <TD><xsl:value-of select="@name" /></TD> 172 <TD /> 173 </TR> 174 <xsl:for-each select="*"> 175 <xsl:choose> 176 <xsl:when test="name()='position'"> 177 <xsl:apply-templates select="." /> 178 </xsl:when> 179 <xsl:when test="name()='orientation'"> 180 <xsl:apply-templates select="." /> 181 </xsl:when> 182 <xsl:otherwise> 183 <TR> 184 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 185 <TD><xsl:value-of select="." /></TD> 186 <TD><xsl:value-of select="@unit" /></TD> 187 </TR> 188 </xsl:otherwise> 189 </xsl:choose> 123 190 </xsl:for-each> 124 191 </xsl:template> 125 192 126 193 <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" /> 194 <TR> 195 <TD>SASinstrument</TD> 196 <TD><xsl:value-of select="cs:name" /></TD> 197 <TD><xsl:value-of select="@name" /></TD> 198 </TR> 199 <xsl:for-each select="*"> 200 <xsl:choose> 201 <xsl:when test="name()='SASsource'"><xsl:apply-templates select="." /></xsl:when> 202 <xsl:when test="name()='SAScollimation'"><xsl:apply-templates select="." /></xsl:when> 203 <xsl:when test="name()='SASdetector'"><xsl:apply-templates select="." /></xsl:when> 204 <xsl:when test="name()='name'" /> 205 <xsl:otherwise> 206 <TR> 207 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 208 <TD><xsl:value-of select="." /></TD> 209 <TD><xsl:value-of select="@unit" /></TD> 210 </TR> 211 </xsl:otherwise> 212 </xsl:choose> 213 </xsl:for-each> 137 214 </xsl:template> 138 215 139 216 <xsl:template match="cs:SASsource"> 140 <xsl:for-each select="*"> 141 <TR> 142 <TD>SASsource_<xsl:value-of select="name()" /></TD> 217 <TR> 218 <TD><xsl:value-of select="name()" /></TD> 219 <TD><xsl:value-of select="@name" /></TD> 220 <TD /> 221 </TR> 222 <xsl:for-each select="*"> 223 <xsl:choose> 224 <xsl:when test="name()='beam_size'"><xsl:apply-templates select="." /></xsl:when> 225 <xsl:otherwise> 226 <TR> 227 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 228 <TD><xsl:value-of select="." /></TD> 229 <TD><xsl:value-of select="@unit" /></TD> 230 </TR> 231 </xsl:otherwise> 232 </xsl:choose> 233 </xsl:for-each> 234 </xsl:template> 235 236 <xsl:template match="cs:beam_size"> 237 <TR> 238 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 239 <TD><xsl:value-of select="@name" /></TD> 240 <TD /> 241 </TR> 242 <xsl:for-each select="*"> 243 <TR> 244 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 143 245 <TD><xsl:value-of select="." /></TD> 144 246 <TD><xsl:value-of select="@unit" /></TD> … … 149 251 <xsl:template match="cs:SAScollimation"> 150 252 <xsl:for-each select="*"> 151 <TR> 152 <TD>SAScollimation_<xsl:value-of select="name()" /></TD> 253 <xsl:choose> 254 <xsl:when test="name()='aperture'"><xsl:apply-templates select="." /></xsl:when> 255 <xsl:otherwise> 256 <TR> 257 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 258 <TD><xsl:value-of select="." /></TD> 259 <TD><xsl:value-of select="@unit" /></TD> 260 </TR> 261 </xsl:otherwise> 262 </xsl:choose> 263 </xsl:for-each> 264 </xsl:template> 265 266 <xsl:template match="cs:aperture"> 267 <TR> 268 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 269 <TD><xsl:value-of select="@name" /></TD> 270 <TD><xsl:value-of select="@type" /></TD> 271 </TR> 272 <xsl:for-each select="*"> 273 <xsl:choose> 274 <xsl:when test="name()='size'"><xsl:apply-templates select="." /></xsl:when> 275 <xsl:otherwise> 276 <TR> 277 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 278 <TD><xsl:value-of select="." /></TD> 279 <TD><xsl:value-of select="@unit" /></TD> 280 </TR> 281 </xsl:otherwise> 282 </xsl:choose> 283 </xsl:for-each> 284 </xsl:template> 285 286 <xsl:template match="cs:size"> 287 <TR> 288 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 289 <TD><xsl:value-of select="@name" /></TD> 290 <TD /> 291 </TR> 292 <xsl:for-each select="*"> 293 <TR> 294 <TD><xsl:value-of select="name(../../..)" />_<xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 153 295 <TD><xsl:value-of select="." /></TD> 154 296 <TD><xsl:value-of select="@unit" /></TD> … … 158 300 159 301 <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> 302 <TR> 303 <TD><xsl:value-of select="name()" /></TD> 304 <TD><xsl:value-of select="cs:name" /></TD> 305 <TD><xsl:value-of select="@name" /></TD> 306 </TR> 307 <xsl:for-each select="*"> 308 <xsl:choose> 309 <xsl:when test="name()='name'" /> 310 <xsl:when test="name()='offset'"><xsl:apply-templates select="." /></xsl:when> 311 <xsl:when test="name()='orientation'"><xsl:apply-templates select="." /></xsl:when> 312 <xsl:when test="name()='beam_center'"><xsl:apply-templates select="." /></xsl:when> 313 <xsl:when test="name()='pixel_size'"><xsl:apply-templates select="." /></xsl:when> 314 <xsl:otherwise> 315 <TR> 316 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 317 <TD><xsl:value-of select="." /></TD> 318 <TD><xsl:value-of select="@unit" /></TD> 319 </TR> 320 </xsl:otherwise> 321 </xsl:choose> 322 </xsl:for-each> 323 </xsl:template> 324 325 <xsl:template match="cs:orientation"> 326 <TR> 327 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 328 <TD><xsl:value-of select="@name" /></TD> 329 <TD /> 330 </TR> 331 <xsl:for-each select="*"> 332 <TR> 333 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 334 <TD><xsl:value-of select="." /></TD> 335 <TD><xsl:value-of select="@unit" /></TD> 336 </TR> 337 </xsl:for-each> 338 </xsl:template> 339 340 <xsl:template match="cs:position"> 341 <TR> 342 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 343 <TD><xsl:value-of select="@name" /></TD> 344 <TD /> 345 </TR> 346 <xsl:for-each select="*"> 347 <TR> 348 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 349 <TD><xsl:value-of select="." /></TD> 350 <TD><xsl:value-of select="@unit" /></TD> 351 </TR> 352 </xsl:for-each> 353 </xsl:template> 354 355 <xsl:template match="cs:offset"> 356 <TR> 357 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 358 <TD><xsl:value-of select="@name" /></TD> 359 <TD /> 360 </TR> 361 <xsl:for-each select="*"> 362 <TR> 363 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 364 <TD><xsl:value-of select="." /></TD> 365 <TD><xsl:value-of select="@unit" /></TD> 366 </TR> 367 </xsl:for-each> 368 </xsl:template> 369 370 <xsl:template match="cs:beam_center"> 371 <TR> 372 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 373 <TD><xsl:value-of select="@name" /></TD> 374 <TD /> 375 </TR> 376 <xsl:for-each select="*"> 377 <TR> 378 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 379 <TD><xsl:value-of select="." /></TD> 380 <TD><xsl:value-of select="@unit" /></TD> 381 </TR> 382 </xsl:for-each> 383 </xsl:template> 384 385 <xsl:template match="cs:pixel_size"> 386 <TR> 387 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 388 <TD><xsl:value-of select="@name" /></TD> 389 <TD /> 390 </TR> 391 <xsl:for-each select="*"> 392 <TR> 393 <TD><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 394 <TD><xsl:value-of select="." /></TD> 395 <TD><xsl:value-of select="@unit" /></TD> 396 </TR> 397 </xsl:for-each> 398 </xsl:template> 399 400 <xsl:template match="cs:term"> 401 <TR> 402 <TD><xsl:value-of select="@name" /></TD> 403 <TD><xsl:value-of select="." /></TD> 404 <TD><xsl:value-of select="@unit" /></TD> 405 </TR> 406 </xsl:template> 407 408 <xsl:template match="cs:SASprocessnote"> 409 <TR> 410 <TD><xsl:value-of select="name()" /></TD> 411 <TD><xsl:value-of select="." /></TD> 412 <TD><xsl:value-of select="@name" /></TD> 413 </TR> 167 414 </xsl:template> 168 415 169 416 <xsl:template match="cs:SASprocess"> 170 417 <TR> 171 <TD> SASprocess_name</TD>418 <TD><xsl:value-of select="name()" /></TD> 172 419 <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> 420 <TD><xsl:value-of select="@name" /></TD> 421 </TR> 422 <xsl:for-each select="*"> 423 <xsl:choose> 424 <xsl:when test="name()='name'" /> 425 <xsl:when test="name()='term'"><xsl:apply-templates select="." /></xsl:when> 426 <xsl:when test="name()='SASprocessnote'"><xsl:apply-templates select="." /></xsl:when> 427 <xsl:otherwise> 428 <TR> 429 <TD><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></TD> 201 430 <TD><xsl:value-of select="." /></TD> 202 431 <TD /> 203 432 </TR> 204 </xsl: if>205 </xsl: for-each>206 </xsl: if>433 </xsl:otherwise> 434 </xsl:choose> 435 </xsl:for-each> 207 436 </xsl:template> 208 437 … … 210 439 <xsl:if test="@name!=''"> 211 440 <TR> 212 <TD> SASnote_<xsl:value-of select="@name" /></TD>213 <TD><xsl:value-of select="." /></TD> 214 <TD />441 <TD><xsl:value-of select="name()" /></TD> 442 <TD><xsl:value-of select="." /></TD> 443 <TD><xsl:value-of select="@name" /></TD> 215 444 </TR> 216 445 </xsl:if>
Note: See TracChangeset
for help on using the changeset viewer.