以下のようなXMLがあります
<siteMap>
<siteMapNode id="1232" title="Home" url="www.google.com" depth="0" use_as_default="Yes">
<siteMapNode id="" title="Resourses" url="" depth="1" blue_button="False">
<siteMapNode id="" title="Project" url="" depth="2" blue_button="False" />
<siteMapNode id="" title="Music" url="" depth="2" blue_button="False" />
<siteMapNode id="" title="Vedio" url="" depth="2" blue_button="False" />
<siteMapNode id="" title="Party" url="" depth="2" blue_button="False" /></siteMapNode>
</siteMapNode>
</siteMap>
XSLT のどこかに、このようなコードを書きたい
<xsl:template match="/">
<ul class="toplevel-menu group">
<xsl:apply-templates select="EXPERSSION1" />
</ul>
</xsl:template>
<xsl:template match="EXPRESSION2">
<li>
<a>
<xsl:attribute name="title">
<xsl:value-of select="@title"/>
</xsl:attribute>
<xsl:attribute name="href">
<xsl:value-of select="@url"/>
</xsl:attribute>
<xsl:value-of select="@title"/>
</a>
</li>
</xsl:template>
select="EXPERSSION1" と match="EXPRESSION2" の書き方
深さ属性をに渡したい場合は、誰かが SELECT を構築してシーンで experssion を一致させるのを手伝ってくれませんか。
アップデート
そのようなことを書くことは可能ですか -
<xsl:apply-templates select="child::*[@depth='2']">
<xsl:with-param name="depth" select="2" />
</xsl:apply-templates>
以下のように使用します
<xsl:template match="sm:siteMapNode[@depth='2']">
<xsl:if test="child::*">
<xsl:apply-templates select="child::*">
<xsl:with-param name="depth" select="$depth+1" />
</xsl:apply-templates>
</xsl:if>
</xsl:template>
既存のxsltを1つ更新する必要があり、何かを壊さないように最小限の変更を好むため