我有100个Employees节点。我需要生成一个xml,当id达到40时,id重置为1.如果id达到80,则id重置为1,依此类推。我可以使用for-each循环,如果mod 40 = 0则减去40,但我相信有更好的解决方案。以下是我的例子
<?xml version="1.0" encoding="UTF-8"?>
<EmployeeDetails>
<Employee id="1">
<Name>TEST</Name>
</Employee>
<Employee id="2">
<Name>TEST</Name>
</Employee>
<Employee id="3">
<Name>TEST</Name>
</Employee>
<Employee id="4">
<Name>TEST</Name>
</Employee>
<Employee id="5">
<Name>TEST</Name>
</Employee>
.
.
.
<Employee id="122">
<Name>TEST</Name>
</Employee>
</EmployeeDetails>
和期望的输出:
<?xml version="1.0" encoding="UTF-8"?>
<EmployeeDetails>
<Employee id="1">
<Name>TEST</Name>
</Employee>
<Employee id="2">
<Name>TEST</Name>
</Employee>
.
.
.
<Employee id="40">
<Name>TEST</Name>
</Employee>
<Employee id="1">
<Name>TEST</Name>
</Employee>
<Employee id="2">
<Name>TEST</Name>
</Employee>
..
.
.
<Employee id="40">
<Name>TEST</Name>
</Employee> .
.Employee id="1">
<Name>TEST</Name>
</Employee>.
.
.
<Employee id="40">
<Name>TEST</Name>
</Employee>
<Employee id="1">
<Name>TEST</Name>
</Employee>
.Employee id="2">
<Name>TEST</Name>
</Employee>
</EmployeeDetails>
你能帮帮忙吗?
非常感谢提前。
答案 0 :(得分:0)
<xsl:value-of select="((position() - 1) mod 40) + 1"/>
从1 ... 40(含)开始,然后再从1开始。
当然,您可以使用除position()
之外的其他数字作为基础。