首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML按属性排序

XML按属性排序
EN

Stack Overflow用户
提问于 2011-12-06 07:49:53
回答 1查看 2.1K关注 0票数 3

我在谷歌上到处搜索,试图找到这个问题的答案,但似乎没有一个解决方案有效。我有以下xml模式:

代码语言:javascript
复制
<xml>
  <race>
    <particpant time="3.25" name="joe blogs">
    <particpant time="1.15" name="john Doe">
    <particpant time="2.0" name="A random">
  </race>
</xml>

然后,我尝试在xslt中进行以下转换:

代码语言:javascript
复制
<ul>
   <xsl:for-each select="participant">
   <xsl:sort  order="ascending" select="@time"/>
     <li> <xsl:value-of select="@name"/> (<xsl:value-of select="@time"/>)</li>
   </xsl:for-each>
 </ul>

循环工作并拉出每个参与者,但排序顺序有一个奇怪的效果,它交换位置,但不一定按正确的顺序排序。

谁能给我指个正确的方向。

顺便说一句,上面的代码是我的代码的一个精简版本,带有虚拟数据,因为实际文件更大更复杂。

提前感谢

约翰

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-06 07:53:38

我认为这可能是因为它对值进行了排序,就像它们是字符串一样。你有没有尝试过下面的方法?

代码语言:javascript
复制
 <ul>
   <xsl:for-each select="participant">
   <xsl:sort data-type="number" order="ascending" select="@time"/>
     <li> <xsl:value-of select="@name"/> (<xsl:value-of select="@time"/>)</li>
   </xsl:for-each>
 </ul>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8393565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档