У меня есть рекурсивные узлы, которые я пытаюсь настроить для jquery-checktree. Узлы выглядят как
foo/bar/ID
/NAME
/CHECKED
bar/ID
/NAME
/CHECKED
/bar/ID
/NAME
/bar/ID
/NAME
/bar/ID
/NAME
/CHECKED
/bar/ID
/NAME
/CHECKED
Там, где любой бар может иметь или не иметь один или несколько узлов баров под ним, но любой бар будет иметь ID и ИМЯ и может иметь ПРОВЕРКУ.
и я хочу превратить это в
<ul>
<li><input type="checkbox" name="..." value="..." checked="checked"></input>
<label for="...">...</label>
<ul>
<li><input type="checkbox" name="..." value="..." checked="checked"></input>
<label for="...">...</label>
</li>
</ul>
<li>....</li>
</ul>
Я могу получить первый уровень, выполнив:
<ul class="tree">
<xsl:for-each select="/foo/bar/">
<li><input type="checkbox" name="{ID}" value="{ID}">
<xsl:if test="CHECKED = 'Y'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if>
</input><label for="{ID}"><xsl:value-of select="NAME"/></label>
</li>
</xsl:for-each>
</ul>
Но я не знаю, как вернуться к встроенному «бару» внутри «бара», вплоть до скольких уровней может быть.