使用XForms呈现XML文件的内容时遇到了一些问题。我没有那么多的经验,所以如果有人能给我一个很棒的提示。
我的XML看起来像这样:
<schedule>
<day>
<course>
</course>
<course>
</course>
..
</day>
<day>
<course>
</course>
..
</day>
..
</schedule>
如果我说
<xforms:repeat nodeset="day/course" id="whatever">
<!-- here handling of nodes -->
</xforms:repeat>
我只得到每天的第一个课程......我应该如何更改它以便我获得一天中节点的所有课程?
谢谢
答案 0 :(得分:1)
您在那里的重复应该遍历所有<course>
中的所有<day>
。例如,以下显示:数学,物理,英语,历史。
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xhtml:head>
<xhtml:title>Repeat</xhtml:title>
<xforms:model>
<xforms:instance>
<schedule>
<day label="Monday">
<course label="Math"/>
<course label="Physics"/>
</day>
<day>
<course label="English"/>
<course label="History"/>
</day>
</schedule>
</xforms:instance>
</xforms:model>
</xhtml:head>
<xhtml:body>
<xforms:repeat nodeset="day/course">
<xhtml:div>
<xforms:output value="@label"/>
</xhtml:div>
</xforms:repeat>
</xhtml:body>
</xhtml:html>
但通常情况下,您要做的事情是首先迭代几天,然后是课程,如:
<xforms:repeat nodeset="day">
<xhtml:div>
Day: <xforms:output value="@label"/>
<xforms:repeat nodeset="course">
<xhtml:div>Course: <xforms:output value="@label"/></xhtml:div>
</xforms:repeat>
</xhtml:div>
</xforms:repeat>