2012-03-22 23 views
7

Tôi có một tài liệu XSL khá lớn cho một bài tập thực hiện một số điều. Nó gần như hoàn thành nhưng tôi đã bỏ lỡ một yêu cầu rằng nó phải được sắp xếp và tôi không thể làm cho nó hoạt động được. Đây là một SSCCE về những gì đang xảy ra.xsl: sắp xếp với các mẫu ứng dụng không phân loại

<?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" />&#160;<xsl:value-of select="last_name" /> <br/> 
</xsl:template> 

</xsl:stylesheet> 

tập tin XML trông như thế này

<?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> 

Tôi đã chờ đợi các nhân viên được liệt kê theo tên cuối cùng nhưng họ không nhận được sắp xếp. Xin lưu ý rằng tôi rất thiếu kinh nghiệm tại XSLT.

Trả lời

20
<xsl:apply-templates select="staff"> 
     <xsl:sort select="member/last_name" /> 
    </xsl:apply-templates> 

chọn các yếu tố nhân viên và sắp xếp chúng, nhưng chỉ có một yếu tố nhân viên, vì vậy đây là một không-op.

Thay đổi để

<xsl:apply-templates select="staff/member"> 
     <xsl:sort select="last_name" /> 
    </xsl:apply-templates> 

sau đó chọn tất cả các yếu tố viên và sắp xếp chúng.

3

gì là mất tích là một mẫu phù hợp với nhân viên hay thay đổi mẫu phù hợp để thành viên như thế nào trong này một:

<?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/member"> 
      <xsl:sort select="last_name" /> 
     </xsl:apply-templates> 

    </body> 
    </html> 

</xsl:template> 

<xsl:template match="member"> 
    <xsl:value-of select="first_name" />&#160;<xsl:value-of select="last_name" /> <br/> 
</xsl:template> 

</xsl:stylesheet> 
Các vấn đề liên quan