Вот кусок моего xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="ran.xsl"?>
<Authentication isLogged="1" uid="40">
<GetUserMenu>
<MenuList>
<row MenuID="1" MenuTitle="menu1"/>
<row MenuID="2" MenuTitle="menu2"/>
<row MenuID="3" MenuTitle="menu3"/>
<row MenuID="4" MenuTitle="menu4"/>
</MenuList>
<FunctionList>
<row FunctionID="1" FunctionTitle="submenu1" MenuID="1" WorkflowName="ImportDataWithoutFile" Order="1"/>
<row FunctionID="2" FunctionTitle="submenu2" MenuID="1" WorkflowName="ImportDataFromFile" Order="2"/>
<row FunctionID="2" FunctionTitle="submenu2" MenuID="3" WorkflowName="ImportDataFromFile" Order="2"/>
</FunctionList>
</GetUserMenu>
</Authentication>
Вывод HTML должен выглядеть примерно так:
<div id="menu">
<div>menu1
<div class="subMenu">
<div>submenu1
</div>
<div>submenu2
</div>
</div>
</div>
<div>menu2
<div class="subMenu">
</div>
</div>
<div>menu3
<div class="subMenu">
<div>submenu3
</div>
</div>
</div>
<div>menu4
<div class="subMenu">
</div>
</div>
</div>
и кусок xsl:
<xsl:template match="//Authentication/GetUserMenu">
<div>
<xsl:for-each select="//MenuList/row">
<div><xsl:value-of select="@MenuID"/></div>
tu
<xsl:for-each select="//FunctionList/row[">
<div><xsl:value-of select="@MenuID"/></div>
</xsl:for-each>
tu
</xsl:for-each>
</div>
</xsl:template>
Iхотел бы, чтобы мой xsl сделал это:
- Во внешнем цикле for-каждый xsl читает значение атрибута MenuId
<row>
из <MenuList>
. - , затем во внутреннем цикле для- каждый мой xsl сравнивает это значение с каждым значением MenuAttribute
<row>
из <FunctionList>
- , затем мой xsl считывает значение атрибута MenuId следующего
<row>
из <MenuList>
и повторяет второй шагДелая это, я буду в состоянии сделать кнопки меню HTML и кнопки подменю ниже соответствующей кнопки.соединение между кнопками меню и подменю распознается атрибутом MenuId
На обычном языке программирования то, что я пытаюсь сделать (с xsl), будет выглядеть так:
foreach (xitems as xitem)
foreach (yitems as yitem)
if xitem == yitem do smth
Может кто-нибудьдать какой-либо совет или изменить мой код, чтобы решить мою проблему?Буду благодарен