我有一个很大的XSL文档,用于执行许多操作的赋值.它已接近完成,但我错过了必须进行排序的要求,我无法使其正常工作.这是正在发生的事情的SSCCE.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Root Document -->
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="staff">
<xsl:sort select="member/last_name" />
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="member">
<xsl:value-of select="first_name" /> <xsl:value-of select="last_name" /> <br/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
XML文件看起来像这样
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="sort.xsl"?>
<staff>
<member>
<first_name>Joe</first_name>
<last_name>Blogs</last_name>
</member>
<member>
<first_name>John</first_name>
<last_name>Smith</last_name>
</member>
<member>
<first_name>Steven</first_name>
<last_name>Adams</last_name>
</member>
</staff>
Run Code Online (Sandbox Code Playgroud)
我期待工作人员按姓氏列出,但他们没有得到排序.请记住,我对XSLT非常缺乏经验.
Dav*_*sle 27
<xsl:apply-templates select="staff">
<xsl:sort select="member/last_name" />
</xsl:apply-templates>
Run Code Online (Sandbox Code Playgroud)
选择staff元素并对它们进行排序,但只有一个staff元素,所以这是一个no-op.
改成
<xsl:apply-templates select="staff/member">
<xsl:sort select="last_name" />
</xsl:apply-templates>
Run Code Online (Sandbox Code Playgroud)
然后选择所有成员元素并对其进行排序.
| 归档时间: |
|
| 查看次数: |
23634 次 |
| 最近记录: |