Viewing file: km_20000207.py (3.56 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#Extrapolated from an example from Michael Kay to ??? on 7 Feb 2000, with numerous corrections: well-formedness and semantics
from Ft.Xml.Domlette import implementation
from Xml.Xslt import test_harness import cStringIO from Ft.Xml.Domlette import Print
sheet_1 = """<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method='html'/>
<xsl:template match="/"> <table> <xsl:apply-templates/> </table> </xsl:template>
<xsl:template match="table"> <xsl:call-template name="one-row"> <xsl:with-param name="row-num" select="1"/> </xsl:call-template> </xsl:template>
<!-- From Michael Kay --> <xsl:template name="one-row"> <xsl:param name="row-num" select="1"/> <tr> <xsl:for-each select="row"> <td><xsl:value-of select="*[$row-num]"/></td> </xsl:for-each> </tr> <xsl:if test="row/*[$row-num+1]"> <xsl:call-template name="one-row"> <xsl:with-param name="row-num" select="$row-num+1"/> </xsl:call-template> </xsl:if> </xsl:template> <!-- END From Michael Kay -->
</xsl:transform>"""
expected_1 = """<table> <tr> <td>1</td> <td>11</td> <td>21</td> <td>31</td> <td>41</td> <td>51</td> <td>61</td> <td>71</td> <td>81</td> <td>91</td> </tr> <tr> <td>2</td> <td>12</td> <td>22</td> <td>32</td> <td>42</td> <td>52</td> <td>62</td> <td>72</td> <td>82</td> <td>92</td> </tr> <tr> <td>3</td> <td>13</td> <td>23</td> <td>33</td> <td>43</td> <td>53</td> <td>63</td> <td>73</td> <td>83</td> <td>93</td> </tr> <tr> <td>4</td> <td>14</td> <td>24</td> <td>34</td> <td>44</td> <td>54</td> <td>64</td> <td>74</td> <td>84</td> <td>94</td> </tr> <tr> <td>5</td> <td>15</td> <td>25</td> <td>35</td> <td>45</td> <td>55</td> <td>65</td> <td>75</td> <td>85</td> <td>95</td> </tr> <tr> <td>6</td> <td>16</td> <td>26</td> <td>36</td> <td>46</td> <td>56</td> <td>66</td> <td>76</td> <td>86</td> <td>96</td> </tr> <tr> <td>7</td> <td>17</td> <td>27</td> <td>37</td> <td>47</td> <td>57</td> <td>67</td> <td>77</td> <td>87</td> <td>97</td> </tr> <tr> <td>8</td> <td>18</td> <td>28</td> <td>38</td> <td>48</td> <td>58</td> <td>68</td> <td>78</td> <td>88</td> <td>98</td> </tr> <tr> <td>9</td> <td>19</td> <td>29</td> <td>39</td> <td>49</td> <td>59</td> <td>69</td> <td>79</td> <td>89</td> <td>99</td> </tr> <tr> <td>10</td> <td>20</td> <td>30</td> <td>40</td> <td>50</td> <td>60</td> <td>70</td> <td>80</td> <td>90</td> <td>100</td> </tr> </table>"""
SIZE=10
def Test(tester): #Create the matrix to be transposed doc = implementation.createDocument(None, 'table', None) counter = 1 for row in range(SIZE): row_elem = doc.createElementNS(None, 'row') doc.documentElement.appendChild(row_elem) for col in range(SIZE): col_elem = doc.createElementNS(None, 'column') row_elem.appendChild(col_elem) content = doc.createTextNode(str(counter)) col_elem.appendChild(content) counter = counter + 1
stream = cStringIO.StringIO() Print(doc,stream)
source = test_harness.FileInfo(string=stream.getvalue()) sheet = test_harness.FileInfo(string=sheet_1) test_harness.XsltTest(tester, source, [sheet], expected_1) return
|