Xml xsl:如何计算子项数不超过n的项数
xml文件:Xml xsl:如何计算子项数不超过n的项数,xml,xslt,Xml,Xslt,xml文件: <faculty> <student name="a a" group="5"> <subject date="2013-02-01" name="science">124</subject> </student> <student name="q q" group="9"> <subject date="2013-02-01" name="my">124</subject&
<faculty>
<student name="a a" group="5">
<subject date="2013-02-01" name="science">124</subject>
</student>
<student name="q q" group="9">
<subject date="2013-02-01" name="my">124</subject>
</student>
<student name="z z" group="2">
</student>
<student name="v v" group="9">
<subject date="2013-02-01" name="tro">tro</subject>
</student>
</faculty>
124
124
特罗
需要:如何计算不超过2个科目的项目数量
我知道如何显示所有这些项目和科目数量,但我不知道如何计算科目总数:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="name" match="subject" use="@name" />
<xsl:template match="subject">
<xsl:if test="count(key('name', @name)) < 2">
subject: <xsl:value-of select="@name" />
count: <xsl:value-of select="count(key('name', @name))" />
</xsl:if>
</xsl:template>
主题:
计数:
提前感谢以下内容将匹配少于2个
主题
元素子元素的学生
元素:
student[count(subject) < 2]
如果需要文档中主题元素的总数,请使用以下命令:
count(/faculty/student/subject)
如果需要subject
元素中不同的@name
值列表的计数:
count(/faculty/student/subject[generate-id()=generate-id(key('name', @name)[1])])
如果只需要显示只出现一次的subject
元素,请注意下面的和count(key('subject-name',@name))=1
部分:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="subject-name" match="subject" use="@name" />
<xsl:template match="faculty">
<xsl:for-each select=".//subject[count(. | key('subject-name', @name)[1]) = 1 and count(key('subject-name', @name)) = 1]">
<xsl:sort select="@name" />
<xsl:value-of select="@name" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
如果我试图回答您的问题:
Q1:“如何计算子项数不超过n的项目数”
这将是:count(items[count(*)<=$n])
Q2:“如何计算不超过2个主题的项目数。”
从您的示例XML和xslt中不太清楚“项”应该是什么。我的解释是,这应该是主题名称。
Than:要计算出现次数不超过2次的主题名称,请尝试以下操作:
count(//subject[
generate-id()=generate-id(key('name', @name)[1])
and
count(key('name', @name) ) <= 2
] )
当你说“items”时,你的意思是想知道有多少student
元素的子元素少于2个subject
吗?你需要列出所有只出现一次的唯一主题名称吗?