Thomas J.S.: bedingte Transformation

Beitrag lesen

Hallo,

Ist es möglich, dass das aufrufende (PHP-)Script an die Transformation einen Parameter übergibt?

Dass man wenn man http://example.net/list?sort=givenname aufruft, die Liste nach Vornamen sortiert bekommt, bei http://example.net/list?sort=familyname nach Familiennamen, im XSLT also sowas inder Art:

xsl:choose

<xsl:when ... = "givenname">
    <xsl:sort select="foaf:givenname"/>
  </xsl:when>
  <xsl:when ... = "familyname">
    <xsl:sort select="foaf:family_name"/>
  </xsl:when>
</xsl:choose>

  
  
Das ist so definitiv nicht möglich.  
xsl:sort muss als erstes Kind vom xsl:for-each oder vom xsl:apply-templates stehen.  
  
Also:  
  
param name="sort" /  
...  
  
when test="$sort = 'givenname'"  
 apply-templates select=...  
   sort select="foaf:givenname"  
 /apply-templates  
  
when test="$sort = 'familyname'"  
 for-each select=...  
   sort select="foaf:family\_name"  
   ...  
 /for-each  
  
otherwiese  
 ...  
  
Grüße  
Thomas