<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="UTF-8" indent="yes"/>

<xsl:variable name="request" select="/page/state[@name='request']"/>

<xsl:template match="/">
	<html>
		<head>
				<title>Custom page name</title>
		</head>
		<body>
			<div id="place-holder">
				<p>Текущий URL: http://example.com/index.xml?section=catalog&amp;cat-id=10&amp;item-id=1404&amp;item-unique-key=809124</p>
				<ul>
					<li>
						<a>
							<xsl:attribute name="href">
								<xsl:apply-templates select="$request">
									<xsl:with-param name="exclude-params" select="'item-id|item-unique-key'"/>
								</xsl:apply-templates>
							</xsl:attribute>
							Ссылка на общую страницу категории
						</a>
					</li>
					<li>
						<a>
							<xsl:attribute name="href">
								<xsl:apply-templates select="$request">
									<xsl:with-param name="exclude-params" select="'cat-id'"/>
								</xsl:apply-templates>
							</xsl:attribute>
							Ссылка на страницу итема, безотносительно категории
						</a>
					</li>
					<li>
						<a>
							<xsl:attribute name="href">
								<xsl:apply-templates select="$request">
									<xsl:with-param name="exclude-params" select="'cat-id|item-id|item-unique-key'"/>
								</xsl:apply-templates>
							</xsl:attribute>
							Ссылка на главную страницу раздела
						</a>
					</li>
				</ul>
			</div>
		</body>
	</html>
</xsl:template>

<xsl:template match="state">
	<xsl:param name="exclude-params"/>
	<xsl:text>http://example.com/index.xml</xsl:text>
	<xsl:apply-templates select="param[not(contains($exclude-params,@name))]"/>
</xsl:template>

<xsl:template match="param[position()=1]">
	<xsl:text>?</xsl:text>
	<xsl:value-of select="@name"/>
	<xsl:text>=</xsl:text>
	<xsl:value-of select="."/>
</xsl:template>

<xsl:template match="param">
	<xsl:text>&amp;</xsl:text>
	<xsl:value-of select="@name"/>
	<xsl:text>=</xsl:text>
	<xsl:value-of select="."/>
</xsl:template>

</xsl:stylesheet>
