我有一个像这样的xml文件:
<students>
<student name=....>
</student>
<student name=....>
</student>
<student name=....>
</student>
<student name=....>
<failedcourses>
...
</failedcourses>
</student>
<student name=....>
<failedcourses>
...
</failedcourse>
</student>
</students>
即。我有一份学生名单,其中一部分有子元素,但大多数学生没有这个子元素。
我想获得一个课程失败的 n 学生的名字,我该怎么做?
我想要一个有效的XPath表达式,我不关心性能。
答案 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