XForms повторить проблему - PullRequest
       7

XForms повторить проблему

2 голосов
/ 08 февраля 2011

У меня небольшая проблема с отображением содержимого моего XML-файла с помощью XForms.У меня нет такого большого опыта с этим, поэтому, если кто-то может дать мне подсказку, это было бы здорово.

Мой 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>

, я получаю только первый курс каждого дня ... Как мне изменитьэто так я получаю за все курсы дня узлы?

Спасибо

1 Ответ

1 голос
/ 08 февраля 2011

Повторение, которое у вас есть, должно повторяться по всем <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>
...