Tôi cố gắng để tìm ra yếu tố cuối cùng trong xml của tôi, trông giống nhưXSLT nhận được yếu tố cuối cùng
<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>
tôi cần để có được một số loại đơn ngược lại, nơi yếu tố hiện tại và cha mẹ được đánh dấu là "tích cực" và anh chị em là "không hoạt động". Thay vào đó, tôi chỉ có một cây lộn xộn khi tôi giả sử phần tử "D" được nhấp vào.
Các yếu tố Double D là vấn đề của tôi. Khi tôi sử dụng select="//element[@name='D'][last()]"
hoặc select="//element[@name='D' and last()]"
(btw cái nào là chính xác?) Lần đầu tiên lần xuất hiện đầu tiên của phần tử D được chọn (trình gỡ lỗi hiển thị điều đó). Đây là 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>
+1. Một trong những tốt đẹp, tôi đã quên bạn có thể sử dụng() theo cách đó (và là cách tắt về việc sử dụng một chỉ mục). – AnthonyWJones
Làm thế nào chúng ta có thể tìm thấy nút này trước nút cuối cùng? – Ege
@Ege '[last() - 1]' làm việc cho tôi – Jessica