Announcement

Collapse
No announcement yet.

Knifflige Knobel-XSLT-Aufgabe (mit einem grossen bitte um Hilfe)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Knifflige Knobel-XSLT-Aufgabe (mit einem grossen bitte um Hilfe)

    hi

    ich hab einen halben tag versucht folgende aufgabe zu lösen, musste aber aufgeben :-(

    <br>
    <b>ausgangslage</b>

    ich hab folende daten:

    <PRE>
    &lt;node value="1"&gt; c1 &lt;/node&gt;
    &lt;node value="2"&gt; c2 &lt;/node&gt;
    &lt;node value="1"&gt; c3 &lt;/node&gt;
    &lt;node value="2"&gt; c4 &lt;/node&gt;
    &lt;node value="3"&gt; c5 &lt;/node&gt; &lt;!-- variable zeigt auf diesen node --&gt;
    &lt;node value="3"&gt; c6 &lt;/node&gt;
    &lt;node value="2"&gt; c7 &lt;/node&gt;
    &lt;node value="3"&gt; c8 &lt;/node&gt;
    &lt;node value="2"&gt; c9 &lt;/node&gt;
    &lt;node value="1"&gt; c10 &lt;/node&gt;
    &lt;node value="2"&gt; c12 &lt;/node&gt;
    &lt;node value="3"&gt; c13 &lt;/node&gt;
    &lt;node value="1"&gt; c14 &lt;/node&gt;
    &lt;node value="3"&gt; c15 &lt;/node&gt;
    </PRE>

    zusätzlich ist eine varibale gegeben, welche beispielsweise auf den fünften node zeigt (mit content c5).

    <br>
    <b>ziel</b>

    ich benötige einen algorythmus welcher mir eine vereinigte menge von elementen zurückgibt
    Z = M1 + M2 + M3 wobei,

    M1 = alle elemente die value = 1 haben (dies ist einfach)

    M2 = alle elemente für die gilt: man gehe vom Element aus, auf den die variable zeigt und geht zurück. Jedes Element gehört zur Menge, solange der value>1 ist. Sobald man auf einen value=1 stösst, bricht man die Suche ab und retourniert alle gefundenen elemente.

    M3 = ähnlich wie M2 aber in die andere Richtung. Man geht vom Element aus, auf welches die Variable zeigt. Man bewegt sich nun abwärts und wählt jedes Element welches der value > 1 ist. Sobald man auf ein element trifft welches value = 1 hat, so bricht man ab! rückgabe alle bislang gefundenen elemente.

    als abschliessende bedingung, sollen alle elemente der menge M in der abfolge angeordnet sein, wie sie in den ursprungdaten waren.

    <br>
    <b>lösung</b>

    im beispiel würde mal als lösung erhalten: die nodes mit den werten

    <PRE>
    c1, c3, c4, c5, c6, c7, c8, c9, c10, c14
    </PRE>

    <br>
    <b>hintergrund</b>

    die daten bilden eine navigation ab, welche gewisse haupt-ebenen hat (value=1) und unterebenen. ein teilbaum ist markiert und soll angezeigt werden, die anderen sollen ausgeblendet werden. leider hab ich die daten nicht als baum (also in verschachtelter form) sondern flach mit der tiefen-angabe als value.

    <br>
    <b>meine erfolglosen versuche</b>

    ich hab wirklich einiges versucht, aber wahrscheinlich auch zu fest einen programmatishcen ansatz gewählt und zuwenige einen abfragenden. ich möchte nicht all meine for-each ansätze auflisten, aber es waren einige.

    --> wäre echt um eine lösung des problems dankbar.

    mit vielen grüssen,
    patrick heusser
Working...
X