使用示例XML:
<orders>
<order>
<items>
<item>1</item>
<item>2</item>
</items>
</order>
<order>
<items>
<item>3</item>
<item>4</item>
</items>
</order>
</orders>
我目前正在制作一个基本上达到顶级水平的电子表格。我通过应用模板执行此操作,我有
<apply-templates match="orders/order/items/item"><!-- sorts --></apply-templates>
我想在项目中的某个属性发生变化时应用标题,我如何获得上一个项目?
对于item4,我想我可以使用preceding-sibling::item
来获取item3,但如果我的主动节点是item3,我将如何获得item2?
我目前正在假设我需要将其设置为带有选择的变量,例如:
<xslt:variable name="previousItem">
<xslt:choose>
<xslt:when test="count(preceding-sibling::item)">
<xslt:value-of match="preceding-sibling::item" />
</xslt:when>
<xslt:otherwise>
<!-- some logic here -->
</xslt:otherwise>
</xslt:choose>
</xslt:variable>
答案 0 :(得分:3)
试试preceding::item[1]
。它仅选择在当前元素之前出现的项目。