<xsl:template match="root">
<root>
<xsl:for-each select="item[ @parent='0']">
<xsl:if test="contains( string( /*/item [ @parent = current()/@id ]), '3')">
<item id="{@id}"><xsl:value-of select="."/>
<xsl:call-template name="menulevel">
<xsl:with-param name="parentid" select="@id"/>
</xsl:call-template>
</item>
</xsl:if>
</xsl:for-each>
</root>
</xsl:template>
<xsl:template name="menulevel">
<xsl

aram name="parentid"/>
<xsl:for-each select="/*/item [ string( @parent) = string( $parentid)]">
<item id="{@id}"><xsl:value-of select="."/>
<xsl:call-template name="menulevel">
<xsl:with-param name="parentid" select="@id"/>
</xsl:call-template>
</item>
</xsl:for-each>
</xsl:template>
BTW, как правильно оформить xml текст для форума (дабы хайлайт и пр было?)