Jmh*_*013 2 xml sorting xslt alphabetized
我试图弄清楚如何使用XSL按姓氏的字母顺序对员工的XML列表进行排序.现在它只是以与XML中相同的顺序显示XML信息.我不认为我完全理解如何使用该<xsl:sort> 功能,因为我是XSL的新手.我也试过投入 order-by="+ Lastname",<xsl:for-each> 我也无法让它工作.
继承人我的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>
Run Code Online (Sandbox Code Playgroud)
继承我的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>
Run Code Online (Sandbox Code Playgroud)
乍看上去,
<xsl:sort select="Employee/Lastname" data-type="text" order="ascending"/>
<xsl:sort select="Employee/Firstname" data-type="text" order="ascending"/>
Run Code Online (Sandbox Code Playgroud)
应该
<xsl:sort select="Lastname" data-type="text" order="ascending"/>
<xsl:sort select="Firstname" data-type="text" order="ascending"/>
Run Code Online (Sandbox Code Playgroud)
for-each设置上下文节点select,因此将针对Employee节点评估表达式.
此外,text并且ascending是默认值,所以你可以写
<xsl:sort select="Lastname"/>
<xsl:sort select="Firstname"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18156 次 |
| 最近记录: |