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&amp;chs=</xsl:text> 
        <xsl:value-of select="$size"/>
        <xsl:text>&amp;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>&amp;chds=</xsl:text>
<xsl:value-of select="$ymin"/><xsl:text>,</xsl:text><xsl:value-of select="$ymax"/>
<xsl:text>&amp;chtt=</xsl:text><xsl:value-of select="$title"/>
<xsl:text>&amp;chxt=x,y&amp;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>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License