PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XSLT: Bestimmte Datensätze mit Atrribut versehen


AardvarKOlogY
07.01.2009, 13:11
Hallo,

spontan habe ich die Überschrift nicht genauer hinbekommen, sorry erstmal.

Folgende Problemstellung:
Es werden Daten mittels XSLT aus einer Datenbank extrahiert und in eine CSV umgewandelt. Dabei handelt es sich um Artikel eines Shopsystems.
Diese Artikel sind bereits nach Preis sortiert, das ist auch unumstößlich. Zusätzlich sind aber Top-Artikel zu benennen. Dies soll über folgenden Automatismus geschehen: Es sollen 10-20 Topartikel existieren, und dies sollen die Artikel mit den höchsten Beständen sein. Es existiert eine Spalte mit der Bestandsanzahl, und die Top-Artikel nach diesem Schema sollen in einer weiteren, ebenfalls existenten Spalte eine "1" bekommen.

Ich stehe momentan noch auf dem Schlauch, wie das zu lösen ist. Vielleicht hab ich noch nicht genug Kaffee intus.
Hat da jemand spontan eine Grundansatz-Idee?


AardvarKOlogY
07.01.2009, 14:39
Zusatzinfos: Ich habe ein Feld inventory/quantity, dessen (sagen wir mal) Top 15 ich ansprechen will und an anderer Stelle ein einfaches <xsl:text>1</xsl:text> reinsetzen möchte.
Sache ist eben: Zur Laufzeit müßte z.B. der Topwert von inventory/quantity ermittelt werden sowie die nächsten 14 Werte, und dann per Abfrage ebenjenes xsl:text anspringen, sonst nicht. Ohne die eigentliche Sortierung durcheinanderzubringen.

Der springende Punkt ist einfach: wie sähe z.B. eine entsprechende <xsl:when>-Abfrage aus?

Firefall
05.08.2009, 08:27
Vielleicht hilft es dir ja noch was :D Du kannst mit der following-sibling und preceding-sibling auf die Elemente nach und vor dem aktuellen Element zugreifen. Wenn du jetzt über diese Achsen alle Elemente auswählst, deren Quantity oder was auch immer > als die aktuelle ist, und die Anzahl dieser Elemente >= 15 ist (macht man mit count), dann ist das aktuelle Element nicht in den Top 15.