2017-05-28 71 views
0

我在这里是新的,所以如果我犯了一些错误,请不要对我太生气。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> 
+0

请注明究竟以何种方式正是你希望我们帮助吗?你在语法,逻辑等方面挣扎吗?在问题中提到它。 – Ray

+0

有了语法,我写的每个循环显然不工作,当我在Firefox中启动xml,所以任何人都可以帮助我:) – Pera

回答

0

这应该工作

<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> 
+0

仍然无法正常工作,但感谢您的帮助,我会继续寻找这个方向 – Pera

+0

啊我的错误:)我忘了一封信:)谢谢man.i接受你的回答 – Pera