mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-21 00:39:37 +00:00
Estimated hours taken: 1 Branches: main Add an XSLT style sheet to convert 234 trees to HTML tables. Fix a bug in the XUL stylesheet. Add link to xsltproc download site to user guide. doc/user_guide.texi Add link to xsltproc download site. extras/xml_stylesheets/README: Document the new stylesheet. extras/xml_stylesheets/html_tree234.xsl: The stylesheet traverses the 234 tree in order, emitting HTML table rows as it goes. extras/xml_stylesheets/xul_tree.xsl: Pass the fieldtermpath template parameter correctly.
184 lines
6.0 KiB
XML
184 lines
6.0 KiB
XML
<?xml version="1.0"?>
|
|
<xsl:stylesheet version="1.0"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<!--
|
|
This template produces an HTML document for 234 trees.
|
|
-->
|
|
<xsl:strip-space elements="*" />
|
|
<xsl:template match="/" priority="200">
|
|
<html>
|
|
<head>
|
|
<title>234 Tree</title>
|
|
</head>
|
|
<body>
|
|
<table border="1">
|
|
<tr>
|
|
<td>Key</td><td>Path</td><td>Value</td><td>Path</td>
|
|
</tr>
|
|
<xsl:apply-templates />
|
|
</table>
|
|
</body>
|
|
</html>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="empty" priority="50">
|
|
</xsl:template>
|
|
|
|
<xsl:template match="two" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:apply-templates select="*[position() = 3]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 3)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
<tr>
|
|
<td><xsl:apply-templates select="*[position()=1]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 1)"/></td>
|
|
<td><xsl:apply-templates select="*[position()=2]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 2)"/></td>
|
|
</tr>
|
|
<xsl:apply-templates select="*[position() = 4]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 4)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
</xsl:template>
|
|
<xsl:template match="three" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:apply-templates select="*[position() = 5]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 5)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
<tr>
|
|
<td><xsl:apply-templates select="*[position()=1]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 1)"/></td>
|
|
<td><xsl:apply-templates select="*[position()=2]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 2)"/></td>
|
|
</tr>
|
|
<xsl:apply-templates select="*[position() = 6]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 6)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
<tr>
|
|
<td><xsl:apply-templates select="*[position()=3]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 3)"/></td>
|
|
<td><xsl:apply-templates select="*[position()=4]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 4)"/></td>
|
|
</tr>
|
|
<xsl:apply-templates select="*[position() = 7]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 7)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
</xsl:template>
|
|
<xsl:template match="four" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:apply-templates select="*[position() = 7]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 7)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
<tr>
|
|
<td><xsl:apply-templates select="*[position()=1]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 1)"/></td>
|
|
<td><xsl:apply-templates select="*[position()=2]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 2)"/></td>
|
|
</tr>
|
|
<xsl:apply-templates select="*[position() = 8]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 8)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
<tr>
|
|
<td><xsl:apply-templates select="*[position()=3]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 3)"/></td>
|
|
<td><xsl:apply-templates select="*[position()=4]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 4)"/></td>
|
|
</tr>
|
|
<xsl:apply-templates select="*[position() = 9]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 9)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
<tr>
|
|
<td><xsl:apply-templates select="*[position()=5]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 5)"/></td>
|
|
<td><xsl:apply-templates select="*[position()=6]"/></td>
|
|
<td><xsl:value-of select="concat($termpath, '/', 6)"/></td>
|
|
</tr>
|
|
<xsl:apply-templates select="*[position() = 10]" >
|
|
<xsl:with-param name="termpath">
|
|
<xsl:value-of select="concat($termpath, '/', 10)"/>
|
|
</xsl:with-param>
|
|
</xsl:apply-templates>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="String" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:value-of select="." disable-output-escaping="yes" />
|
|
<xsl:text>"</xsl:text>
|
|
<xsl:if test="following-sibling::* and not(parent::two) and not(parent::three) and not(parent::four)">
|
|
<xsl:text>,</xsl:text>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
<xsl:template match="Int" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:value-of select="." disable-output-escaping="yes" />
|
|
<xsl:if test="following-sibling::* and not(parent::two) and not(parent::three) and not(parent::four)">
|
|
<xsl:text>,</xsl:text>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
<xsl:template match="Float" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:value-of select="." disable-output-escaping="yes" />
|
|
<xsl:if test="following-sibling::* and not(parent::two) and not(parent::three) and not(parent::four)">
|
|
<xsl:text>,</xsl:text>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
<xsl:template match="Char" priority="50">
|
|
<xsl:param name="termpath" />
|
|
<xsl:text>('</xsl:text>
|
|
<xsl:value-of select="." disable-output-escaping="yes" />
|
|
<xsl:text>')</xsl:text>
|
|
<xsl:if test="following-sibling::* and not(parent::two) and not(parent::three) and not(parent::four)">
|
|
<xsl:text>,</xsl:text>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="*" priority="10">
|
|
<xsl:param name="termpath" />
|
|
<xsl:choose>
|
|
<xsl:when test="@functor">
|
|
<xsl:value-of select="@functor" disable-output-escaping="yes" />
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="name()" disable-output-escaping="yes" />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:if test="count(child::*) != 0">
|
|
<xsl:text>(</xsl:text>
|
|
<xsl:apply-templates />
|
|
<xsl:text>)</xsl:text>
|
|
</xsl:if>
|
|
<xsl:if test="following-sibling::* and not(parent::two) and not(parent::three) and not(parent::four)">
|
|
<xsl:text>,</xsl:text>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="showpath">
|
|
<xsl:param name="termpath" />
|
|
<xsl:choose>
|
|
<xsl:when test="ancestor::*">
|
|
<xsl:value-of select="concat($termpath, '/', position())"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="'/'" />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|