【发布时间】:2009-05-27 17:24:23
【问题描述】:
我有一个包含大约 150 个条目的 xml 文档。我以几种方式对条目进行排序。一个是按字母顺序显示的,通过 XSLT 显示并且效果很好,其他的按类别和解决方案,存在逐行交替条带颜色的问题。
当我遍历未显示的条目时出现问题,即使它们未显示,它们似乎也包含在计数中。我之前在匿名用户下问过这个问题,希望这次我更清楚。
感谢您的帮助。
XML 文档。
<case-studies>
<!-- #### X #### -->
<case-study>
<name>Entry 1</name>
<category solution="Performance">Medical</category>
<category solution="Medical">Security</category>
<category solution="Industry">Medical</category>
<category solution="A-Z">X</category>
</case-study>
<!-- #### Y #### -->
<case-study>
<name>Entry 2</name>
<category solution="Industry">Education</category>
<category solution="Convergence">Education</category>
<category solution="A-Z">Y</category>
</case-study>
</case-studies>
XSLT 调用
<%
Dim mm_xsl As MM.XSLTransform = new MM.XSLTransform()
mm_xsl.setXML(Server.MapPath("/data/xml/case-studies/case-studiesTest.xml"))
mm_xsl.setXSL(Server.MapPath("/data/xslt/case-studies/categoryLandingOther.xsl"))
mm_xsl.addParameter("solName", "Industry")
mm_xsl.addParameter("catName", "Business services")
Response.write(mm_xsl.Transform())
%>
部分xslt
<xsl:for-each select="case-studies/case-study/category[. = $catName]">
<!--xsl:sort select="../name" /-->
<xsl:if test="@solution[. = $solName]">
<tr>
<xsl:if test="(position() mod 2 = 1)">
<xsl:attribute name="bgcolor">#e7e7e7</xsl:attribute>
</xsl:if>
<td class="cell1">
</td>
<td class="cell2" style="padding-top:2px;">» <a href="{../url}"><xsl:value-of select="../name"/></a></td>
<td class="cell3">
<xsl:for-each select="../solutionType">
<div class="clearRight"><xsl:value-of select="."/></div>
</xsl:for-each>
</td>
</tr>
</xsl:if>
</xsl:for-each>
【问题讨论】: