Xslt 如何选择xsl:sort条目
现在我正在使用Xslt 如何选择xsl:sort条目,xslt,Xslt,现在我正在使用xsl:sort对显示的数据进行排序: <xsl:sort select="." order="descending" data-type="number" /> 据我所知,这个问题与xsl:when无关 奖金问题 IE或Chrome可以调试xsl吗?我可以放置断点并跟踪执行,将鼠标悬停在变量和步骤行上吗 花言巧语 xml文件通过样式表包含xsl文件: sqm.xml <?xml version="1.0" encoding="utf-8"?> <?
xsl:sort
对显示的数据进行排序:
<xsl:sort select="." order="descending" data-type="number" />
据我所知,这个问题与xsl:when
无关
奖金问题
IE或Chrome可以调试xsl吗?我可以放置断点并跟踪执行,将鼠标悬停在变量和步骤行上吗
花言巧语
xml文件通过样式表包含xsl文件:
sqm.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='sqm.xslt' media='all'?>
<Sqm version="1.2">
...
</Sqm>
...
您不能将xsl:sort
直接放在条件结构中,因此您在其中选择的布尔表达式无关紧要;XSLT无效。但是,您可以执行以下操作:
<xsl:for-each select="Metrics/Metric">
<xsl:sort select="@id[0 = 1]" />
<xsl:sort select="@sum[1 = 1]" order="descending" data-type="number" />
<xsl:sort select="@count[0 = 1]" order="descending" data-type="number" />
<xsl:sort select="@minValue[1 = 1]" order="descending" data-type="number" />
<xsl:sort select="@maxValue[0 = 1]" order="descending" data-type="number" />
<xsl:value-of select="@id"/> <xsl:value-of select="."/>
</xsl:for-each>
(当然,您可能希望使用真正有意义的布尔表达式,我只是以您的示例为基础)
以上内容应首先按@sum
对项目进行排序,然后再按@minValue
对项目进行排序,并忽略所有其他内容
为了回答您的额外问题,我不知道任何浏览器中有任何XSLT调试功能,但Visual Studio的某些版本(据说还有Eclipse)确实提供了XSLT调试功能,并且VS和Eclipse都应该提供比现在更多有意义的错误消息。您还可以使用Saxon的命令行工具来解决这些问题。对于上述问题,它也应该为您提供有意义的错误消息。我知道这是一个老问题,但我想指出(正如我在回答中所说)浏览器中模糊的错误消息并不是“XSL开发人员可用的编程工具的范围”。这根本不是真的。
<xsl:sort ... >
<xsl:choose>
<xsl:when test="1=1">
<xsl:sort select="." order="descending" data-type="number" />
</xsl:when>
<xsl:otherwise>
<xsl:sort select="." order="descending" data-type="number" />
</xsl:otherwise>
</xsl:choose>
<xsl:when test="1=1">
<xsl:when test="1==1">
<xsl:when test="1>0">
<xsl:when test="1 > 0">
<xsl:when test="1 > 0">
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='sqm.xslt' media='all'?>
<Sqm version="1.2">
...
</Sqm>
<xsl:for-each select="Metrics/Metric">
<xsl:sort select="@id[0 = 1]" />
<xsl:sort select="@sum[1 = 1]" order="descending" data-type="number" />
<xsl:sort select="@count[0 = 1]" order="descending" data-type="number" />
<xsl:sort select="@minValue[1 = 1]" order="descending" data-type="number" />
<xsl:sort select="@maxValue[0 = 1]" order="descending" data-type="number" />
<xsl:value-of select="@id"/> <xsl:value-of select="."/>
</xsl:for-each>