Sclout2html
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template name="table"> <xsl:param name="data"/> <xsl:element name="table"> <xsl:for-each select ="$data"> <xsl:element name="tr"> <xsl:element name="td"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:variable name="attname" select="name(.)"/> <xsl:call-template name="agraph"> <xsl:with-param name="data" select="//@*[name()=$attname]" /> <xsl:with-param name="title" select="name(.)" /> <xsl:with-param name="size" select="'600x300'"/> </xsl:call-template> </xsl:attribute> <xsl:value-of select="name(.)"></xsl:value-of> </xsl:element> </xsl:element> <xsl:element name="td"> <xsl:value-of select="."></xsl:value-of></xsl:element> </xsl:element> </xsl:for-each> </xsl:element> </xsl:template> <xsl:template name="agraph"> <xsl:param name="data" /> <xsl:param name="title" /> <xsl:param name="size" select="'300x120'"/> <xsl:text>http://chart.apis.google.com/chart?cht=lc&chs=</xsl:text> <xsl:value-of select="$size"/> <xsl:text>&chd=t:</xsl:text> <xsl:for-each select="$data"> <xsl:value-of select="." /> <xsl:if test="not(position()=count($data))"> <xsl:text>,</xsl:text> </xsl:if> </xsl:for-each> <xsl:variable name="ymin"> <xsl:for-each select="$data"> <xsl:sort select="." order="ascending" data-type="number" /> <xsl:if test="position()=1"> <xsl:value-of select="." /> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="ymax"> <xsl:for-each select="$data"> <xsl:sort select="." order="descending" data-type="number" /> <xsl:if test="position()=1"> <xsl:value-of select="." /> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:text>&chds=</xsl:text> <xsl:value-of select="$ymin"/><xsl:text>,</xsl:text><xsl:value-of select="$ymax"/> <xsl:text>&chtt=</xsl:text><xsl:value-of select="$title"/> <xsl:text>&chxt=x,y&chxr=0,1,</xsl:text> <xsl:value-of select="count($data)"/><xsl:text>|1,</xsl:text> <xsl:value-of select="$ymin"/><xsl:text>,</xsl:text><xsl:value-of select="$ymax"/> </xsl:template> <xsl:template match="/"> <html> <xsl:element name="HEAD"> <xsl:element name="META"> <xsl:attribute name="HTTP_EQUIV" >REFRESH</xsl:attribute> <xsl:attribute name="CONTENT"><xsl:value-of select="ceiling(/scl/iter[last()]/timing/@itertime)"/></xsl:attribute> </xsl:element> </xsl:element> <body> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:call-template name="agraph"> <xsl:with-param name="data" select="/scl/iter/energies/@totalEnergy" /> <xsl:with-param name="title" select="'Total Energy'" /> </xsl:call-template> </xsl:attribute> </xsl:element> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:call-template name="agraph"> <xsl:with-param name="data" select="/scl/iter/@rmslog10" /> <xsl:with-param name="title" select="'convergence+(powers+of+10)'" /> </xsl:call-template> </xsl:attribute> </xsl:element> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:call-template name="agraph"> <xsl:with-param name="data" select="/scl/iter/charges/@core_leakage" /> <xsl:with-param name="title" select="'core leakage'" /> </xsl:call-template> </xsl:attribute> </xsl:element> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:call-template name="agraph"> <xsl:with-param name="data" select="/scl/iter/energies/@fermiEnergy" /> <xsl:with-param name="title" select="'Fermi energy'" /> </xsl:call-template> </xsl:attribute> </xsl:element> <h1>Results</h1> <xsl:for-each select ="/scl/iter[last()]"> <xsl:element name="div"> <xsl:attribute name="style">float:left; width:300px;</xsl:attribute> <xsl:call-template name="table"> <xsl:with-param name="data" select="@*"/> </xsl:call-template> </xsl:element> <xsl:element name="div"> <xsl:attribute name="style" >width:300px;</xsl:attribute> <h2>energies</h2> <xsl:call-template name="table"> <xsl:with-param name="data" select="energies/@*"/> </xsl:call-template> </xsl:element> <xsl:element name="div"> <xsl:attribute name="style"></xsl:attribute> <h2>charges</h2> <xsl:call-template name="table"> <xsl:with-param name="data" select="charges/@*"/> </xsl:call-template> </xsl:element> <xsl:element name="div"> <xsl:attribute name="style">float:left;</xsl:attribute> <h2>timing <xsl:value-of select="ceiling(/scl/iter[last()]/timing/@itertime)"/></h2> <xsl:call-template name="table"> <xsl:with-param name="data" select="timing/@*"/> </xsl:call-template> </xsl:element> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>