我想通过两个独立子元素内的两个属性对父节点排序。具体而言,我想通过“攻击/ @ PCT”,然后通过“杂项/ @点”第一排序下面是我的源代码:XSLT通过两个子项属性排序父项
<player uni="11" code="11" name="RACHEL, Devon" checkname="RACHEL,DEVON" class="JR" gp="4" ms="1">
<attack k="14" e="1" ta="41" pct=".317"></attack>
<set a="0" e="0" ta="2"></set>
<serve sa="0" se="0" ta="6"></serve>
<defense dig="3" re="2" ta="13"></defense>
<block bs="0" ba="2" be="0" tb="2"></block>
<misc bhe="0" pts="15.0"></misc>
</player>
<player uni="13" code="13" name="BECKMAN, Allison" checkname="BECKMAN,ALLISON" class="JR" gp="4" ms="1">
<attack k="3" e="1" ta="4" pct=".500"></attack>
<set a="51" e="0" ta="128"></set>
<serve sa="0" se="0" ta="16"></serve>
<defense dig="17" re="0" ta="0"></defense>
<block bs="0" ba="2" be="1" tb="2"></block>
<misc bhe="0" pts="4.0"></misc>
</player>
<player uni="2" code="2" name="MADISON, Kennedy" checkname="MADISON,KENNEDY" class="JR" gp="4">
<attack k="14" e="7" ta="32" pct=".219"></attack>
<set a="0" e="0" ta="3"></set>
<serve sa="0" se="0" ta="0"></serve>
<defense dig="3" re="0" ta="2"></defense>
<block bs="0" ba="5" be="0" tb="5"></block>
<misc bhe="1" pts="16.5"></misc>
</player>
<player uni="20" code="20" name="MUMMEY, Krissy" checkname="MUMMEY,KRISSY" class="SR" gp="4" ms="1">
<attack k="12" e="4" ta="31" pct=".258"></attack>
<set a="0" e="0" ta="1"></set>
<serve sa="0" se="1" ta="8"></serve>
<defense dig="5" re="0" ta="1"></defense>
<block bs="0" ba="4" be="1" tb="4"></block>
<misc bhe="0" pts="14.0"></misc>
</player>
从本质上讲,我希望它吐出的第一个球员,即使没有她misc/@ pts也不会攻击/ @ pct将在个别排序中排名第一。这是我尝试过的代码,但它似乎缺少了一些东西 - 它会按第一个排序,但完全忽视第二个。
<xsl:for-each select="player">
<xsl:sort select="attack/@pct" data-type="number" order="descending"/>
<xsl:sort select="misc/@pts" data-type="number" order="descending"/>
...
</xsl:for-each>
在您的示例数据中,每个对于'attack/@ p'具有不同的值ct'。因此第二个排序键与这些数据无关。 –
如果您想将数据按照出现的顺序排序,那么确定订单的实际标准是什么?我想'attack/@ pct'和'misc/@ pts'的一些组合;在这种情况下,它是您想要作为排序键的*组合*。 –
我想按攻击/ @ pct进行排序,然后在该排序中,按misc/@ pts进行排序。基本上我所遇到的情况是,得分最高的球员并不总是最有效率的 - 这意味着一个有两到三个点的球员可能会有更高的进攻/效率。也许有些地方是通过攻击/ @ pct进行排序,同时为misc/@ pts定义最小值(大于)? – wnoble13