2014-04-07 122 views
0

我想在名为'table1'的重复表中显示学生。当用户点击其中一个人时,会显示学生注册的详细信息。此XPath表达式有什么问题

我尝试了这一点,从表中索引,然后我将登记实例中的学生ID与学生实例中的ID进行比较。当我写这篇文章

<xf:output ref="Course_idCourse"/> 

其中Course_idCourse是在招生

的XML文件看起来像这样

</enrollment> 
     <Course_idCourse>1</Course_idCourse> 
     <Student_idStudent>2</Student_idStudent> 
     <year>2014</year> 
     <Semester>1</Semester> 
     <mark>50</mark> 
     <idEnrollment>1</idEnrollment> 
    </enrollment> 

元素有一个学生则显示

<xf:repeat nodeset="/instance('enrollInstance')/enrollment[Student_idStudent=student[index('table1')]/idStudent]"> 

什么看起来像这样的xml文件

<Student> 
<idStudent /> 
</Student> 

感谢您的帮助。

+1

显示您要定位的XML源 – JWiley

+0

您是否还在使用1.0或2.0?无论哪种方式,没有一个指标()操作 – JWiley

+0

指数()是特定于XForms的 –

回答

0

问题(基于该示例XML)是您针对的是不存在的节点。看着眼前这个位:

/enrollment[Student_idStudent=student[index('table1')]/idStudent] 

你正在寻找一个enrollment节点,具有Student_idStudent子元素,随后有孩子idStudent元素。

但是在示例XML中,您有一个enrollment元素,其中Student_idStudent子元素包含文本,但其中没有子元素。所以Xpath永远不会匹配任何东西。

+0

感谢的功能,但学生并不在另一个XML文件存在(或实例我应该说)。当我写下面的内容时,我得到了一个好结果'/ enrollment [Student_idStudent = 1]' –

+0

@ user1412823是的,那个查询会因为有一个'/ enrollment/Student_idStudent'节点,而且你没有查询任何子节点那。如果有另一个XML文件,我建议将其编辑到问题中,以便我们完全了解问题。 –

+0

谢谢我编辑了这个问题。 –