xsl文件中的每个循环中有多个条件
问题描述:
我在这里是新的,所以如果我犯了一些错误,请不要对我太生气。o在xml和一个xsl文件中应该有一小段代码从我的xml文件的一个小表。但我在每个循环中有不止一个条件,更有趣的是这两个条件不是同一级别的节点的一部分,或者“父母”在较低的水平上,所以你可以帮助我。下面是XML代码:xsl文件中的每个循环中有多个条件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="DZ07.xsl"?>
<students>
<student>
<name> John </name>
<surname> Piterson </surname>
<age> 21 </age>
<exam>
<subject>
<grade> 5 </grade>
<code> IT210 </code>
</subject>
<subject>
<grade> 7 </grade>
<code> IT101 </code>
</subject>
</exam>
</student>
<student>
<name> Peter </name>
<surname> Max </surname>
<age> 26 </age>
<exam>
<subject>
<grade> 9 </grade>
<code> IT210 </code>
</subject>
<subject>
<grade> 10 </grade>
<code> IT101 </code>
</subject>
</exam>
</student>
</students>
和XSL代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
</head>
<body>
<h2>Students that passed the exam:</h2>
<table border="1">
<tr bgcolor="red">
<th align="left">Name</th>
<th align="left">Surname</th>
<th align="left">Age</th>
<th align="left">Grade</th>
<th align="left">Code</th>
</tr>
<xsl:for-each select="students/student[age>=22 or
students/student/exam/subject[grade>=6 and code=' IT210 ']]">
<tr bgcolor="yellow">
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="surname"/></td>
<td><xsl:value-of select="age"/></td>
<td><xsl:value-of select="grade"/></td>
<td><xsl:value-of select="code"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答
这应该工作
<xsl:for-each select="students/student[age>=22 or exam/subject[grade>=7 and code=' IT210 ']]">
<tr bgcolor="yellow">
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="surname"/></td>
<td><xsl:value-of select="age"/></td>
<td><xsl:value-of select="exam/subject/grade"/></td>
<td><xsl:value-of select="exam/subject/code"/></td>
</tr>
</xsl:for-each>
请注明究竟以何种方式正是你希望我们帮助吗?你在语法,逻辑等方面挣扎吗?在问题中提到它。 – Ray
有了语法,我写的每个循环显然不工作,当我在Firefox中启动xml,所以任何人都可以帮助我:) – Pera