[解決済み] XSLTで最後の要素を取得する
2022-04-26 10:36:16
質問
私は、次のようなxmlの最後の要素を見つけようとしています。
<list>
<element name="A" />
<element name="B" >
<element name="C" />
<element name="D" >
<element name="D" />
<element name="E" />
<element name="F" />
<element name="G" />
</element>
<element name="H" />
<element name="I" />
</list>
私は、現在の要素と親が "active"、兄弟が "inactive" として強調表示される、ある種の逆メニューを得る必要があります。代わりに、私は"D"要素がクリックされたと仮定したときにのみ、結果として私は乱雑なツリーを持ちます。
ダブルD要素は私の問題です。私が
select="//element[@name='D'][last()]"
または
select="//element[@name='D' and last()]"
(どちらが正しいのでしょうか?) 初回
初出
D要素が選択される(デバッガが表示する)。以下はxslです。
<xsl:template match="list">
<xsl:apply-templates select="//navelement[@name = 'D'][last()]" mode="active"/>
</xsl:template>
<xsl:template match="element">
<ul class="menu">
<xsl:apply-templates select="preceding-sibling::node()" mode="inactive"/>
<li><a>....</a></li>
<xsl:apply-templates select="following-sibling::node()" mode="inactive"/>
</ul>
<xsl:apply-templates select="parent::element" mode="active"/>
</xsl:template>
<xsl:template match="element" mode="inactive">
<li><a>....</a></li>
</xsl:template>
解決方法は?
を配置する必要があります。
last()
のインデックスは、選択基準の一部としてではなく、ノデリストの結果に対して設定されます。試してみてください。
(//element[@name='D'])[last()]
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] XSLT v2.0 を用いて XML ファイルに schemaLocation を挿入する。
-
[解決済み] XSLT <xsl:if> で文字列を比較するときに "not equals to" を指定するにはどうすればよいですか?
-
[解決済み] XSLT : 1から60までのループ処理
-
[解決済み] XSLTにおける分割
-
[解決済み] XSLTで現在の日付を挿入することはできますか?
-
[解決済み] XSLの "contains "ディレクティブはありますか?
-
[解決済み] XSLTで文字列がヌルか空かをチェックする
-
[解決済み】XSLTで を挿入する方法
-
[解決済み】XPathでノードが存在するかどうかを確認する
-
[解決済み] XSLTで最後の要素を取得する