File: functions.xsl

package info (click to toggle)
libxslt 1.1.43-0.2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 25,188 kB
  • sloc: xml: 66,120; ansic: 36,035; sh: 4,582; python: 3,206; makefile: 1,378; javascript: 470; perl: 34
file content (41 lines) | stat: -rw-r--r-- 1,218 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output encoding="utf-8"/>

  <xsl:template match="table">
    <xsl:for-each select="row">
      <xsl:text>
      </xsl:text>
      <person>
        <xsl:value-of select="concat(firstname, ' ', lastname)"/>
        <xsl:value-of select="string-length(firstname)"/>
        <!-- rot13 -->
        <xsl:value-of select="translate(firstname,
                              'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
                              'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM')"/>
        <xsl:value-of select="sum(preceding-sibling::row/id)"/>
        <xsl:value-of select="floor(id div 17)"/>
        <xsl:value-of select="ceiling(id*3.1415)"/>
        <xsl:value-of select="substring(lastname,4,3)"/>
      </person>
      <extra>
        <xsl:if test="starts-with(id,'001')">
          <xsl:value-of select="zip"/>
        </xsl:if>
        <xsl:if test="contains(lastname,'k')">
          <xsl:value-of select="substring-after(lastname,'k')"/>
        </xsl:if>
      </extra>



    </xsl:for-each>
    <xsl:text>
    </xsl:text>

  </xsl:template>

</xsl:stylesheet>