我正在尝试对一些数字进行排序,但是在排序方面遇到了一些问题。
- rep_Tool / @ ToolStnNo 是一个节点,可以按任意顺序给出工具的编号。
例如:
...
<ToolStnNo>
10
</ToolStnNo>
...
<ToolStnNo>
12
</ToolStnNo>
...
<ToolStnNo>
3
</ToolStnNo>
...
<ToolStnNo>
11
</ToolStnNo>
...
<ToolStnNo>
2
</ToolStnNo>
...
<ToolStnNo>
4
</ToolStnNo>
...
<ToolStnNo>
1
</ToolStnNo>
...
<ToolStnNo>
6
</ToolStnNo>
...
<ToolStnNo>
5
</ToolStnNo>
...
<ToolStnNo>
8
</ToolStnNo>
...
<ToolStnNo>
7
</ToolStnNo>
...
我得到的结果表格是:
10 --- > This 10 dont be here
1
2
3
4
5
6
7
8
11
12
13
而正确的方式是:
1
2
3
4
5
6
7
8
10 --- > This 10 should be here
11
12
13
<xsl:for-each select="MillSetupSheetAttr">
<xsl:for-each select="MillOperation">
<xsl:sort select="rep_Tool/@ToolStnNo" data-type="number"/>
<tr>
<td><font><xsl:value-of select="rep_Tool/@ToolStnNo"/></font></td>
</tr>
</xsl:for-each>
</xsl:for-each>
注意:相关部分的XML文档的实际结构如下所示:
<MillSetupSheetAttr>
<MillOperation>
<rep_Tool ToolStnNo="10" .../>
</MillOperation>
<MillOperation>
<rep_Tool ToolStnNo="1" .../>
</MillOperation>
<MillOperation>
<rep_Tool ToolStnNo="2" .../>
</MillOperation>
</MillSetupSheetAttr>
ToolStnNo
被定义为元素,但是XSL文件却将其作为属性来访问。哪一个是正确的呢?如果你想要每个ToolStnNo
元素对应一个<tr>
标签,那么<xsl:for-each select="MillSetupSheetAttr/MillOperation/rep_Tool/ToolStnNo"><xsl:sort select="." data-type="number"/><tr></tr></xsl:for-each>
可以按照要求排序。 - andyb