Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 如何选择xsl:sort条目_Xslt - Fatal编程技术网

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 &gt; 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>