2

我在使用 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>

我每天只获得第一门课程...我应该如何更改它以便获得一天中所有课程的节点?

谢谢

4

1 回答 1

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>
于 2011-02-08T18:29:21.893 回答