Hallo Andreas,
Gibt es eine Umkehrfunktion zu id()?
Also eine Funktion, die alle Elemente liefert, die in einem per IDREFS deklarierten Attribut eine gegebene ID haben?
Indirekt. ;-)
Gibt es eine _sauberere_ Lösung dafür? Also eine, die mit beliebigen id-Werten funktioniert?
Ja:
<xsl:key name="patizip2event" match="participant" use="id(@events)/@id" />
....
<xsl:template match="event">
<h3><xsl:value-of select="@name"/></h3>
<ul>
<xsl:apply-templates select="key('patizip2event', @id)" mode="byevent"/>
</ul>
</xsl:template>
<xsl:template match="participant" mode="byevent">
<li><xsl:value-of select="@name"/></li>
</xsl:template>
----------------------------
liefert :
<h3>bla</h3>
<ul>
<li>Alpha</li>
</ul>
<h3>blubb</h3>
<ul>
<li>Bravo</li>
<li>Charlie</li>
</ul>
<h3>laber</h3>
<ul>
<li>Alpha</li>
<li>Charlie</li>
</ul>
Grüße
Thomas