Viewing file: dc_20000110.py (3.06 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#Example from David Carlisle <davidc@nag.co.uk> to John Robert Gardner <jrgardn@emory.edu> on 10 Jan 2000
from Xml.Xslt import test_harness
sheet_1 = """<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method="xml" indent="yes"/>
<xsl:template match="sample"> <verse> <xsl:apply-templates select="verse[@id='rv1.84.10']/mantra"/> </verse> </xsl:template>
<xsl:template match="verse[@id='rv1.84.10']/mantra"> <xsl:copy-of select="."/> <xsl:variable name="x" select="position()"/> <xsl:copy-of select="../../verse[@id='rv1.16.1']/mantra[position()=$x]"/> </xsl:template>
</xsl:stylesheet>"""
sheet_2 = """<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method="xml" indent="yes"/>
<xsl:template match="sample"> <verse> <xsl:for-each select="verse/mantra"> <xsl:sort select="substring-after(@id,../@id)"/> <xsl:sort select="../@id" order="descending"/> <xsl:copy-of select="."/> </xsl:for-each> </verse> </xsl:template>
</xsl:stylesheet>"""
xml_source="""<sample> <verse meter="gaayatrii" id="rv1.16.1"> <mantra id="rv1.16.1a"> aa tvaa vahantu harayo </mantra> <mantra id="rv1.16.1b"> vRSaNaM somapiitaye </mantra> <mantra id="rv1.16.1c"> indra tvaa suuracakSasaH </mantra> </verse>
<verse meter="gaayatrii" id="rv1.84.10"> <mantra id="rv1.84.10a"> svaador itthaa viSuuvato </mantra> <mantra id="rv1.84.10b"> madhvaH pibanti gauryaH </mantra> <mantra id="rv1.84.10c"> yaa indreNa sayaavariir </mantra> </verse> </sample>"""
expected_1 = """<?xml version='1.0' encoding='UTF-8'?> <verse> <mantra id='rv1.84.10a'> svaador itthaa viSuuvato </mantra> <mantra id='rv1.16.1a'> aa tvaa vahantu harayo </mantra> <mantra id='rv1.84.10b'> madhvaH pibanti gauryaH </mantra> <mantra id='rv1.16.1b'> vRSaNaM somapiitaye </mantra> <mantra id='rv1.84.10c'> yaa indreNa sayaavariir </mantra> <mantra id='rv1.16.1c'> indra tvaa suuracakSasaH </mantra> </verse>"""
expected_2 = """<?xml version='1.0' encoding='UTF-8'?> <verse> <mantra id='rv1.84.10a'> svaador itthaa viSuuvato </mantra> <mantra id='rv1.16.1a'> aa tvaa vahantu harayo </mantra> <mantra id='rv1.84.10b'> madhvaH pibanti gauryaH </mantra> <mantra id='rv1.16.1b'> vRSaNaM somapiitaye </mantra> <mantra id='rv1.84.10c'> yaa indreNa sayaavariir </mantra> <mantra id='rv1.16.1c'> indra tvaa suuracakSasaH </mantra> </verse>"""
def Test(tester): source = test_harness.FileInfo(string=xml_source) sheet = test_harness.FileInfo(string=sheet_1) test_harness.XsltTest(tester, source, [sheet], expected_1, title='Using position()')
source = test_harness.FileInfo(string=xml_source) sheet = test_harness.FileInfo(string=sheet_2) test_harness.XsltTest(tester, source, [sheet], expected_2, title='Using xsl:for-each and xsl:sort') return
|