File: exslt.py

package info (click to toggle)
libxslt 1.1.28-2%2Bdeb8u3
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 29,368 kB
  • ctags: 8,698
  • sloc: xml: 75,165; ansic: 33,958; sh: 11,010; python: 2,979; makefile: 2,879; perl: 34
file content (56 lines) | stat: -rwxr-xr-x 1,385 bytes parent folder | download | duplicates (10)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/python -u
import sys
import libxml2
# Memory debug specific
libxml2.debugMemory(1)
import libxslt


styledoc = libxml2.parseDoc(
"""<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:str="http://exslt.org/strings"
    exclude-result-prefixes="str">

<xsl:template match="/">
<out>;
  str:tokenize('2001-06-03T11:40:23', '-T:')
  <xsl:copy-of select="str:tokenize('2001-06-03T11:40:23', '-T:')"/>;

  str:tokenize('date math str')
  <xsl:copy-of select="str:tokenize('date math str')"/>;
</out>
</xsl:template>

</xsl:stylesheet>
""")
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseDoc("<doc/>")
result = style.applyStylesheet(doc, None)
stringval = style.saveResultToString(result)
style.freeStylesheet()
doc.freeDoc()
result.freeDoc()

expect="""<?xml version="1.0"?>
<out>;
  str:tokenize('2001-06-03T11:40:23', '-T:')
  <token>2001</token><token>06</token><token>03</token><token>11</token><token>40</token><token>23</token>;

  str:tokenize('date math str')
  <token>date</token><token>math</token><token>str</token>;
</out>
"""

if stringval != expect:
  print "Exslt processing failed"
  sys.exit(255)
    
# Memory debug specific
libxslt.cleanup()
if libxml2.debugMemory(1) == 0:
    print "OK"
else:
    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
    libxml2.dumpMemory()