Hallo,
Wo kommt eigentlich die Information "zusätzliches Feld" her? Die musst Du ja auch irgendwie dynamisch bekommen, oder?
Denn bei <xsl:sort /> kannst Du beim select-Attribut nämlich einen beliebigen XPath-Ausdruck angeben, d.h. sowas funktioniert durchaus:
<xsl:for-each select="...">
<xsl:sort select="translate (elem/@attrib, 'ABC', 'DEF')" />
...
</xsl:for-each>
>
> (Jetzt mal beispielhaft)
>
> Funktioniert in XSLT 1.0 natürlich nur, wenn Du die Information bezüglich des zusätzlichen Feldes auch in einem geschlossenen XPath-Ausdruck unterbringen kannst und keine Bedingungen / Templates benötigst. Da ist XSLT 2.0 auch wieder besser, weil man sich da eigene XPath-Funktionen definieren kann und außerdem stehen in XPath 2.0 auch if/then/else und for u.ä. zur Verfügung.
Das sieht als Ansatz gut aus. Die Sortierung soll nach Häufigkeit sein:
~~~xml
<xsl:sort select="count(//FeederReportUnit/Unit[fsPartNum = $tmp_fsPartNum])" />
Würde das so funktionieren?
Auch wenn ich vorher Gruppiere?
<xsl:for-each select="FeederReportUnit/Unit[count(. | key('partnumbers', fsPartNum)[1]) = 1 and fsPartNum!='']">
Als weitere Alternative bestünde natürlich die Möglichkeit, das Dokument zweimal durch XSLT zu jagen: Das erste Mal werden nur Zusatzinformationen hinzugefügt, das zweite Mal erfolgt die Anzeigelogik.
Das war ja mein Ansatz, aber wie/ wo lege ich das Zwischenergebnis ab?
bydey
--
-- bydey ist die Signatur und Verabschiedung, nicht der Nick --
-- Navigate all your PHP web projects with PHP Project Browser--
-- bydey ist die Signatur und Verabschiedung, nicht der Nick --
-- Navigate all your PHP web projects with PHP Project Browser--