在不使用foreach的情况下为所有子节点测试条件
本文关键字:子节点 测试 条件 情况下 foreach | 更新日期: 2023-09-27 18:13:18
我有一个XML
<Students>
<Student id ="Stu1" />
<Student id ="Stu2" />
<Student id ="Stu3" />
</Students>
我正在尝试使用XSLT转换它。
只有当它的一个子元素的id包含"2"时,我才需要选择student元素。
我使用了以下XSLT
<xsl:if test="contains(Student/@id, '2')">
</xsl:if>
如果Stu2出现在第一个子元素中,则可以正常工作。
在不使用foreach的情况下,是否有办法测试所有子的条件?使用谓词中包含的内容,例如<xsl:if test="Student[contains(@id, '2')]">...</xsl:if>
我需要选择一个Students元素,只有当它的一个子元素有id包含"2"。
不清楚在什么上下文中你需要"选择"它-但你可以使用:
...select="Students[Student[contains(@id, '2')]]"
选择(或匹配)所有这样的Students元素。