让这是xml:
... some other parent elements here ...
<subject group="a">Economy</subject>
<subject group="b">Math</subject>
<subject group="a">Finance</subject>
<subject group="c">Arts</subject>
... some other elements here
我想处理并打印一个标题,其中组"a"one_answers"b"在一个标题下,c在另一个标题中。"C'不是一个确定的字符串,它可以是"d","d"。我只想把"a"one_answers"b"从其他任何东西中分离出来。因此一个示例输出是
主要科目(a和b)
- 经济金融数学
其他
- 艺术
现在,我有了"其他"部分的代码:
<xsl:if test="not(subject/@group[. = 'a'] or subject/@group[. = 'b])">
<h2>Others</h2>
<ul>
<xsl:for-each select="subject">
<xsl:sort select="./@group"/>
<xsl:if test="@group!='a'and @type!='b'">
<xsl:apply-templates select="."/>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:if>
这不正常工作。我试过不带not()和with!=
简言之,我只想知道除了a组和b组的元素之外,是否还有其他元素。如果有,请打印一些东西,如果没有,请不要打印标题"其他"。
任何帮助都将不胜感激。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<h2>Main Subjects</h2>
<ul>
<xsl:for-each select="//subject[@group/.='a' or @group/.='b']">
<li>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
</ul>
<h2>Others</h2>
<ul>
<xsl:for-each select="//subject[not(@group/.='a' or @group/.='b')]">
<li>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
编辑:@group/.='a'
或@group ='a'
都很好,