mirror of
https://gitlab.gnome.org/GNOME/libxslt
synced 2025-08-07 10:42:55 +03:00
- configure.in tests/Makefile.am tests/XSLTMark/* tests/multiple: added the XSLTMark in the regression tests as well as multiple output test from Ankh - libxslt/functions.c libxslt/keys.c libxslt/transform.c libxslt/variables.c libxslt/xsltutils.c: applied William M. Brack patches and fixed a memory leak - tests/docbook/result/html/*.html : updated the results after William's patch - tests/xmlspec/REC-xml-20001006-review.html tests/xmlspec/REC-xml-20001006.html: libxml now don't invent an HTML doctype when serializing HTML result, but adds the encoding in ALT Daniel
52 lines
1.4 KiB
XML
52 lines
1.4 KiB
XML
<?xml version="1.0"?>
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output encoding="utf-8"/>
|
|
<xsl:template match="node" mode="keep">
|
|
<node key="{@key}">
|
|
<xsl:if test="left">
|
|
<left>
|
|
<xsl:apply-templates select="left/node" mode="keep"/>
|
|
</left>
|
|
</xsl:if>
|
|
<xsl:if test="right">
|
|
<right>
|
|
<xsl:apply-templates select="right/node" mode="keep"/>
|
|
</right>
|
|
</xsl:if>
|
|
</node>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="*"/>
|
|
|
|
<xsl:template match="node">
|
|
<xsl:choose>
|
|
<xsl:when test="(left and not(right)) or (left/node/@key < right/node/@key)">
|
|
<node key="{left/node/@key}">
|
|
<left>
|
|
<xsl:apply-templates select="left/node"/>
|
|
</left>
|
|
<xsl:if test="right">
|
|
<right>
|
|
<xsl:apply-templates select="right/node" mode="keep"/>
|
|
</right>
|
|
</xsl:if>
|
|
</node>
|
|
</xsl:when>
|
|
<xsl:when test="right">
|
|
<node key="{right/node/@key}">
|
|
<xsl:if test="left">
|
|
<left>
|
|
<xsl:apply-templates select="left/node" mode="keep"/>
|
|
</left>
|
|
</xsl:if>
|
|
<right>
|
|
<xsl:apply-templates select="right/node"/>
|
|
</right>
|
|
</node>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet> |