Viewing file: af_20000922.py (4.02 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#Alexandre Fayolle's <alf@logilab.com> output bug with 4DOM + 4XSLT from Xml.Xslt import test_harness
sheet_1 = """<?xml version="1.0"?>
<xsl:transform xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> <xsl:strip-space elements='*'/>
<xsl:template match='rss'> <html-body> <h1> <xsl:apply-templates select="channel"/> </h1> </html-body> </xsl:template>
<xsl:template match='channel'> <h2> <xsl:value-of select='./title'/> </h2> <table> <tr> <td>Description:</td> <td> <xsl:value-of select='./description'/> </td> </tr> <tr> <td>URL:</td> <td> <xsl:apply-templates mode='multilink' select='link'/> </td> </tr> </table> <xsl:apply-templates select='item'/> </xsl:template>
<xsl:template match='item'> <h3> <xsl:apply-templates select='title'/> </h3> <table> <xsl:apply-templates mode='first' select='description'/> <xsl:apply-templates mode='first' select='link'/> </table> </xsl:template> <xsl:template match='title'> <xsl:value-of select='.'/> </xsl:template>
<xsl:template match='link'> <xsl:element name='a'> <xsl:attribute name='href'> <xsl:value-of select='.'/> </xsl:attribute> <xsl:value-of select='.'/> </xsl:element> </xsl:template>
<xsl:template mode='multi' match='*'> <xsl:value-of select='.'/> </xsl:template>
<xsl:template mode='first' match='description'> <tr> <td> Description: </td> <td> <xsl:apply-templates mode='multi' select='../description'/> </td> </tr> </xsl:template> <xsl:template mode='multilink' match='*'> <xsl:element name='a'> <xsl:attribute name='href'> <xsl:value-of select='.'/> </xsl:attribute> <xsl:value-of select='.'/> </xsl:element> </xsl:template>
<xsl:template mode='first' match='link'> <tr> <td> More detail at: </td> <td> <xsl:apply-templates mode='multilink' select='../link'/> </td> </tr> </xsl:template>
</xsl:transform> """
# external DTD reference commented out by us; # the DTD isn't used in this instance source_1 = """<?xml version="1.0"?> <!--DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"--> <rss version="0.91">
<channel> <title>freshmeat.net</title> <link>http://freshmeat.net</link> <description>the one-stop-shop for all your Linux software needs</description> <language>en-us</language>
<item> <title>Alzabo 0.06a</title> <link>http://freshmeat.net/news/2000/07/19/964065475.html</link> <description>Perl data modelling tool and RDBMS-OO mapper.</description> </item>
<item> <title>HLmaps 0.90</title> <link>http://freshmeat.net/news/2000/07/19/964065450.html</link> <description>A Perl/CGI script for Half-Life servers to present a list of loaded maps</description> </item>
<textinput> <title>quick finder</title> <description>Use the text input below to search the freshmeat application database</description> <name>query</name> <link>http://core.freshmeat.net/search.php3</link> </textinput> </channel> </rss> """
expected_1 = """<?xml version='1.0' encoding='UTF-8'?> <html-body><h1><h2>freshmeat.net</h2><table><tr><td>Description:</td><td>the one-stop-shop for all your Linux software needs</td></tr><tr><td>URL:</td><td><a href='http://freshmeat.net'>http://freshmeat.net</a></td></tr></table><h3>Alzabo 0.06a</h3><table><tr><td> Description: </td><td>Perl data modelling tool and RDBMS-OO mapper.</td></tr><tr><td> More detail at: </td><td><a href='http://freshmeat.net/news/2000/07/19/964065475.html'>http://freshmeat.net/news/2000/07/19/964065475.html</a></td></tr></table><h3>HLmaps 0.90</h3><table><tr><td> Description: </td><td>A Perl/CGI script for Half-Life servers to present a list of loaded maps</td></tr><tr><td> More detail at: </td><td><a href='http://freshmeat.net/news/2000/07/19/964065450.html'>http://freshmeat.net/news/2000/07/19/964065450.html</a></td></tr></table></h1></html-body>"""
def Test(tester): source = test_harness.FileInfo(string=source_1) sheet = test_harness.FileInfo(string=sheet_1) test_harness.XsltTest(tester, source, [sheet], expected_1, title='output bug') return
|