如何使用 xslt 获取与特定元素值匹配的最后一条记录?
Posted
技术标签:
【中文标题】如何使用 xslt 获取与特定元素值匹配的最后一条记录?【英文标题】:How to get the last records that match a specific element value using xslt? 【发布时间】:2021-05-07 20:49:35 【问题描述】:我有一个 xml,其中包含如下所示的汽车记录列表
<Car>
<color>red</color>
<type>toyota</type>
<status>done</status>
</Car>
<Car>
<color>green</color>
<type>mazda</type>
<status>done</status>
</Car>
<Car>
<color>yellow</color>
<type>ford</type>
<status>working</status>
</Car>
<Car>
<color>green</color>
<type>mazda</type>
<status>pending</status>
</Car>
我目前正在获取最后一次这样的汽车记录
<Cars>
<Car>
<xsl:copy-of select="//Car[last()]"/>
</Car>
</Cars>
我想看看是否有可能获得与我的元素值匹配的最后一辆汽车记录
例子
从上面的 xml 示例中,我想获取不包含挂起状态的最后一辆汽车记录,因此我的输出如下所示。
这是最后一条符合我条件的记录
<Car>
<color>yellow</color>
<type>ford</type>
<status>working</status>
</Car>
而且也只有这样的我想要的记录。
<Cars>
<Car>
<color>yellow</color>
<status>working</status>
</Car>
<Cars>
【问题讨论】:
【参考方案1】:你可以这样做:
<Cars>
<Car>
<xsl:copy-of select="//Car[not(status='pending')][last()]"/>
</Car>
</Cars>
【讨论】:
你可以在这里测试它:xsltfiddle.liberty-development.net/gVrvcxU 如果我只想获取颜色和状态,我能做什么,所以输出看起来像这样以上是关于如何使用 xslt 获取与特定元素值匹配的最后一条记录?的主要内容,如果未能解决你的问题,请参考以下文章