属性「folded」が「yes」または「no」に設定された親ノード(「folder」)の条件で表示されるリストを作成するのに苦労しています。結果には、リストの最初の2つのレベルのみが表示され、以下のように3番目のレベルは表示されません。
- 1日 レベル:表示
- 2位。レベル:表示
- 3位。レベル:表示なし
アイデアは、'folder'-属性<folder folded="yes">をでチェックすること<xsl:if test="not(parent::yes)">です。それは3番目の資格があるはずです。表示されないレベルですが、どういうわけか私がやりたいことをしません。おそらく間違った構文や構文を使用しています。支援に感謝します、ありがとう。
一部のコンテンツを含むXML構造:
<xbel>
<folder folded="yes">
<level>1</level>
<title>bookmarks</title>
<desc>my bookmarks</desc>
<folder folded="no">
<level>2</level>
<title>Android</title>
<desc>my Android</desc>
<bookmark href="http://www.phonesreview.co.uk/">
<title>HTC Sync 3.0.5422 Update: Aria, Desire, Hero, Legend</title>
<desc>The new HTC Sync 3.0.5422 update will be most welcome...</desc>
</bookmark>
<folder folded="no">
<level>3</level>
<title>Apps</title>
<desc>Android Apps</desc>
<bookmark href="http://www.androidzoom.com/">
<title>Android Communication Apps</title>
<desc>Download Communication Apps for Android.</desc>
</bookmark>
<bookmark href="http://www.htc.com/">
<title>HTC - Android</title>
<desc>Apps for HTC-Android.</desc>
</bookmark>
</folder>
</folder>
</folder>
</xbel>
XSLT:
<!--creates a nested list of elements named 'folder'-->
<xsl:template match="folder" mode="linklist">
<li>
<xsl:if test="folder/level = 2">
Level:<xsl:value-of select="level"/> /
Title:<xsl:value-of select="title"/> /
Desc:<xsl:value-of select="desc"/>
<ul>
<xsl:apply-templates mode="linklist" />
</ul>
</xsl:if>
</li>
</xsl:template>
<xsl:template match="bookmark" mode="linklist">
<li> <!-- this bookmark is just another item in the list of bookmarks -->
<!-- the title -->
<a rel="nofollow" href="{@href}"><xsl:value-of select="title"/></a>
<!-- the description -->
<xsl:if test="desc">
<span class="bookmarkDesc">
<xsl:value-of select="desc"/>
</span>
</xsl:if>
</li>
</xsl:template>
スタイルシートHTML
<body>
<ul>
<xsl:apply-templates mode="linklist" />
</ul>
</body>
生成された出力(レベル:1-3)
Level:1 / Title:bookmarks / Desc:my bookmarks
Level:2 / Title:Android / Desc:my Android
HTC Sync 3.0.5422 Update: Aria, Desire, Hero, Legend ...
Level:3 / Title:Apps / Desc:Android Apps
Android Communication AppsDownload Communication Apps for Android.
HTC - AndroidApps for HTC-Android.
予想される出力:(レベル:1-2)
Level:1 / Title:bookmarks / Desc:my bookmarks
Level:2 / Title:Android / Desc:my Android
HTC Sync 3.0.5422 Update: Aria, Desire, Hero, Legend ...
このテンプレートを試しましたが、最後の2つのノードが出力されるため、最初の2つのノードが必要です。
<xsl:template match="folder[parent::folder/@folded = 'yes']" mode="linklist">