首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于属性的XSLT排序

基于属性的XSLT排序
EN

Stack Overflow用户
提问于 2013-11-06 09:44:23
回答 1查看 115关注 0票数 0

我想根据子节点的属性对下面的“testsuite”进行排序。在这种情况下“被执行”。我该怎么做?

这是我的XML

代码语言:javascript
复制
 <test-suite name="AnalyticsRequestTest" success="True" time="0.003" asserts="0">
                    <results>
                <test-case name="IntegrationTests" executed="True"  success="True" time="0.002" asserts="1" />
  <test-case name="IntegrationTests1" executed="False"  success="False" time="0.002" asserts="1" />

和我的XSLT

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:template name="testsuites">
      <xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
      <xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
      <xsl:for-each select="//test-suite[(child::results/test-case)]">
         <xsl:sort select="child::results/test-case[translate(@executed,$ucletters,$lcletters)='false']" />
      </xsl:for-each>
   </xsl:template>
</xsl:stylesheet>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 10:48:48

你快到了。但是请记住,xxl: sort /@select必须将排序键计算为字符串或数字(不是测试用例元素!)。所以我怀疑

代码语言:javascript
复制
<xsl:sort select="child::results/test-case[translate(@executed,$ucletters,$lcletters)='false']" />

应该是

代码语言:javascript
复制
<xsl:sort select="translate(child::results/test-case/@executed,$ucletters,$lcletters)" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19808604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档