内のノードの2セットを比較する手助けが必要です。ここに私のxmlの作品です:は、XSL
<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>
<?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出力は次のようなものでなければなりません
xslでこれを行うようにします:
- 外部のfor-eachサイクルでは、xslは
<row>
のMenuId属性の値を<MenuList>
の値で読み取ります。 - はその後のために、各インナーサイクルに私のXSLは私のXSLは
<MenuList>
の<row>
を次のmenuID属性属性の値を読み取り、これにより第二段階 を繰り返し、その後<FunctionList>
- の
<row>
年代のMenuAttributeのすべての値にその値を比較し、これは、私は対応するボタンの下にHTMLメニューボタンとサブメニューボタンを作ることができるでしょう。メニューとサブメニューボタンの間の接続は、menuID属性によって認識され、通常のプログラミング言語では
属性私は(XSLで)やろうとしていますと、次のようになります。
foreach (xitems as xitem)
foreach (yitems as yitem)
if xitem == yitem do smth
誰もが何かアドバイスを与えるか、または修正することができます私の問題を解決するために私のコードですか?私は
XML入力をHTML出力に変換するXSLTの方法について助けが必要な場合は、作成したいXML入力とそれに対応するHTML出力の小さいサンプルを表示することを検討してください。それから、適切なXSLTコードを手助けすることができます。 「通常の」プログラミング言語のコードをXSLTコードに「翻訳する」ことは、XSLTの問題を解決するための良いアプローチではありません。 –
私は予想されるHTML出力を投稿しました。それ以上の詳細が不足している場合は、教えてください。私はいくつかの助けに感謝します –