根据动态条件对项目列表进行分区



获取错误列表

<?xml version="1.0"?>
<bugs>
  <bug> 
    <status>todo</status>
    <content> this is a todo bug </content>
  </bug>
  <bug> 
    <status>closed</status>
    <content>this is a closed bug</content>
  </bug>
  <bug> 
    <status>new</status>
    <content>this is a new bug</content>
  </bug>
  <bug> 
    <status>deferred</status>
    <content>this is a deferred bug</content>
  </bug>
  <bug> 
    <status>todo</status>
    <content>this is another todo bug</content>
  </bug>
</bugs>
列出

一组给定的"活动"错误和所有其他错误的 XSLT 是什么?

我能够构建这个问题的"活动"部分,基于这里给出的一个很好的答案:XSLT:在关键函数中使用变量,这将是以下 XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ext="http://exslt.org/common"
                >
  <xsl:output method="text"/>
  <xsl:param name="pActive">
    <!-- this is supposed to be the dynamic criteria -->
    <a>todo</a>
    <a>new</a>
  </xsl:param>
  <xsl:key name="kBugsByStatus" match="bug" use="normalize-space(status)"/>
  <xsl:variable name="vActive" select="ext:node-set($pActive)/*"/>
  <xsl:template match="/">
    <xsl:text>Active bugs:&#xA;</xsl:text>
    <xsl:apply-templates select="key('kBugsByStatus',$vActive)"/>
    <xsl:text>Other bugs:&#xA;</xsl:text>
    <!-- This is the question: -->
    <xsl:apply-templates select="key('kBugsByStatus',???)"/>
  </xsl:template>

  <xsl:template match="bug">
    <xsl:text>* </xsl:text>
    <xsl:value-of select="normalize-space(content)"/>
    <xsl:text>&#xA;</xsl:text>
  </xsl:template>
</xsl:stylesheet>

谢谢!

使用 select="/bugs/bug[not(status = $vActive)]" .

相关内容

  • 没有找到相关文章

最新更新