如何通过另一个 XPATH 的所有值过滤属性
How to filter an attribute by all value of another XPATH
我在一个 XSL 页面中,我需要计算字段 Party 等于一个值的所有节点。
或者换个说法(我粗略的重建了逻辑……你应该明白了……)
我需要所有至少有 5 个学生的老师
- 教师:
/School/Teachers/@Id
- 学生:
/School/Students/@TeachersId
我可以数,但我不会过滤...
我得到了这样的东西
count(/School/Students/@TeachersId = /School/Teachers/@Id)>5
但是这是在计算任何老师的学生人数!我只需要超过5个学生的老师
使用 @TeachersId
作为查找键在 Students
上创建一个 xsl:key
:
<xsl:key
name="students-by-teacher-id"
match="Students"
use="@TeachersId"/>
然后对于每个 Teachers
,您可以使用密钥 select 所有具有 Teachers/@Id
值的 Students
@TeachersId
和 count()
它们来测试谓词内部是否有超过 5 个。
/School/Teachers/@Id[count(key('students-by-teacher-id', .)) > 5]
我在一个 XSL 页面中,我需要计算字段 Party 等于一个值的所有节点。
或者换个说法(我粗略的重建了逻辑……你应该明白了……) 我需要所有至少有 5 个学生的老师
- 教师:
/School/Teachers/@Id
- 学生:
/School/Students/@TeachersId
我可以数,但我不会过滤... 我得到了这样的东西
count(/School/Students/@TeachersId = /School/Teachers/@Id)>5
但是这是在计算任何老师的学生人数!我只需要超过5个学生的老师
使用 @TeachersId
作为查找键在 Students
上创建一个 xsl:key
:
<xsl:key
name="students-by-teacher-id"
match="Students"
use="@TeachersId"/>
然后对于每个 Teachers
,您可以使用密钥 select 所有具有 Teachers/@Id
值的 Students
@TeachersId
和 count()
它们来测试谓词内部是否有超过 5 个。
/School/Teachers/@Id[count(key('students-by-teacher-id', .)) > 5]