XPath表达式帮助

时间:2009-11-08 19:51:49

标签: xml xpath

我有一个像这样的xml文件:

<students>
<student name=....>
</student>
<student name=....>
</student>
<student name=....>
</student>
<student name=....>
    <failedcourses>
          ...
    </failedcourses>
</student>
<student name=....>
    <failedcourses>
          ...
    </failedcourse>
</student>
</students>

即。我有一份学生名单,其中一部分有子元素,但大多数学生没有这个子元素。

我想获得一个课程失败的 n 学生的名字,我该怎么做?

我想要一个有效的XPath表达式,我不关心性能。

4 个答案:

答案 0 :(得分:2)

好的,所以答案似乎很简单。只需使用括号:

(/student/failedcourses)[3]/../@name

在该示例中,n = 3

答案 1 :(得分:2)

(/students/student[failedcourses])[3]/@name

答案 2 :(得分:0)

你介意使用xquery吗?

  

让$ studentsWhoFailed:= $ myxml / students / student / failedcourse

     

返回$ studentsWhoFailed [n] / @ name

(语法可能不是100%正确,因为我还没有测试过它)

答案 3 :(得分:0)

嗯,只是为了好玩和变化(而且它的方式很晚,所以我不保证语法):

student[count(failedcourses) > 0][3]/@name