使用XSL按字母顺序对XML节点排序

使用XSL按字母顺序对XML节点排序,xml,xslt,sorting,alphabetized,Xml,Xslt,Sorting,Alphabetized,我试图弄清楚如何使用XSL按姓氏的字母顺序对员工的XML列表进行排序。现在,它只是按照与XML中相同的顺序显示XML信息。我认为我并不完全理解如何使用函数,因为我是XSL新手。我还尝试将order by=“+Lastname”与放在一起,但我也无法实现 以下是我的xml: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="Company1.xsl"?> <Company> <

我试图弄清楚如何使用XSL按姓氏的字母顺序对员工的XML列表进行排序。现在,它只是按照与XML中相同的顺序显示XML信息。我认为我并不完全理解如何使用
函数,因为我是XSL新手。我还尝试将
order by=“+Lastname”
放在一起,但我也无法实现

以下是我的xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="Company1.xsl"?>
<Company>
    <Employee>
        <Firstname>John</Firstname>
        <Lastname>Smith</Lastname>
        <ssn>635-35-7463</ssn>
        <doh>February 3, 2011</doh>
        <Age>34</Age>
    </Employee>
    <Employee>
        <Firstname>Brad</Firstname>
        <Lastname>Roberts</Lastname>
        <ssn>789-65-4568</ssn>
        <doh>February 13, 2012</doh>
        <Age>25</Age>
    </Employee>
    <Employee>
        <Firstname>Karen</Firstname>
        <Lastname>Smith</Lastname>
        <ssn>369-12-7415</ssn>
        <doh>March 24, 2011</doh>
        <Age>28</Age>
    </Employee>
    <Employee>
        <Firstname>Eli</Firstname>
        <Lastname>Smith</Lastname>
        <ssn>489-32-8525</ssn>
        <doh>September 14, 2010</doh>
        <Age>38</Age>
    </Employee>
    <Employee>
        <Firstname>Bill</Firstname>
        <Lastname>Joel</Lastname>
        <ssn>689-67-7634</ssn>
        <doh>February 29, 2012</doh>
        <Age>24</Age>
    </Employee>
    <Employee>
        <Firstname>Kelly</Firstname>
        <Lastname>Greene</Lastname>
        <ssn>927-82-6873</ssn>
        <doh>December 3, 2010</doh>
        <Age>34</Age>
    </Employee>
</Company>

约翰
史密斯
635-35-7463
2011年2月3日
34
布拉德
罗伯茨
789-65-4568
2012年2月13日
25
凯伦
史密斯
369-12-7415
2011年3月24日
28
伊莱
史密斯
489-32-8525
2010年9月14日
38
比尔
乔尔
689-67-7634
2012年2月29日
24
凯莉
格林
927-82-6873
2010年12月3日
34
这是我的XSL:

<?xml version="1.0" ?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
    <HTML>
    <HEAD>
    <TITLE>Company Employees</TITLE> 
    </HEAD>
    <BODY>
    <H2>Company Employees</H2> 

    <xsl:for-each select="Company/Employee">
        <xsl:sort select="Employee/Lastname" data-type="text" order="ascending"/>
        <xsl:sort select="Employee/Firstname" data-type="text" order="ascending"/>

        <SPAN STYLE="font-weight:bold">FirstName: </SPAN>
            <xsl:value-of select="Lastname" />
        <BR />
        <SPAN STYLE="font-weight:bold">LastName: </SPAN>
            <xsl:value-of select="Firstname" />
        <BR /> 
        <SPAN STYLE="font-weight:bold">SSN: </SPAN> 
        <xsl:value-of select="ssn" /> 
        <BR /> 
        <SPAN STYLE="font-weight:bold">Date of Hire: </SPAN> 
        <xsl:value-of select="doh" /> 
        <BR /> 
        <SPAN STYLE="font-weight:bold">Age: </SPAN> 
        <xsl:value-of select="Age" /> 
        <P/>
    </xsl:for-each>
    </BODY>
    </HTML>
    </xsl:template>
</xsl:stylesheet>

公司员工
公司员工
名字:

姓氏:
SSN:
聘用日期:
年龄:

一目了然

    <xsl:sort select="Employee/Lastname" data-type="text" order="ascending"/>
    <xsl:sort select="Employee/Firstname" data-type="text" order="ascending"/>

成功了!很高兴事情很简单。谢谢你的快速回复。@Fourthmeal70,很高兴我能帮上忙。坦率地说,我甚至不知道可以使用XSLT进行多种排序,所以我也学到了一些东西。为了在将来的问题中获得最佳结果,您应该将正确答案标记为“已接受”(复选标记)。
    <xsl:sort select="Lastname" data-type="text" order="ascending"/>
    <xsl:sort select="Firstname" data-type="text" order="ascending"/>
    <xsl:sort select="Lastname"/>
    <xsl:sort select="Firstname"/>