我坚持使用xPath表达式以及如何在XSLT中呈现它。我很乐意帮忙。
来源
“item”元素的平面堆栈:
<list>
<item outline="3" name="grumpy"/>
<item outline="5" name="monarchists"/>
<item outline="9" name="dispatch"/>
<item outline="3" name="parkour"/>
<item outline="3" name="elves"/>
<item outline="9" name="hunting"/>
<item outline="9" name="clueless"/>
<item outline="3" name="xPath"/>
<item outline="2" name="newbs"/>
</list>
TEST
前一个元素的“outline”属性的值是否大于当前元素的“outline”属性的值?
如果是,请将当前“item”元素“outline”属性的值更改为1。
失败的XPATH
我无法通过初步测试...
<xsl:when test="preceding::item[1][@outline > @outline]">
渴望输出
<list>
<item outline="1" name="grumpy"/>
<item outline="5" name="monarchists"/>
<item outline="9" name="dispatch"/>
<item outline="1" name="parkour"/>
<item outline="3" name="elves"/>
<item outline="9" name="hunting"/>
<item outline="9" name="clueless"/>
<item outline="1" name="xPath"/>
<item outline="1" name="newbs"/>
</list>
请同时推荐XSLT。
谢谢!
答案 0 :(得分:0)
使用
<xsl:template match="item[preceding-sibling::item[1]/@outline > @outline]/@outline">
<xsl:attribute name="outline">1</xsl:outline>
</xsl:template>
加上身份转换模板。