2016-04-28 12 views
0

Ich mag mehrere xsl erstellen: Variable, die nicht null sein können oder sie dann beitreten:xsl string-join() mehr Variablen - nur verwenden, nicht leere

<xsl:variable name="creatorType" select="replace(lib:merge(subfields/subfield[matches(@code,'[e]')],' '),'author|[.$]','')" /> 
<xsl:variable name="creatorAttribution" select="replace(lib:merge(subfields/subfield[matches(@code,'[j]')],' '),'[,-.]$','')" /> 
<xsl:variable name="creatorNameFullForm" select="replace(lib:merge(subfields/subfield[matches(@code,'[q]')],' '),'[,-()]$','')" /> 
<xsl:variable name="creatorAffiliation" select="replace(lib:merge(subfields/subfield[matches(@code,'[u]')],' '),'[,-.]$','')" /> 

string-join ((xsl: sequence), 'delimiter') scheint eine gute Anpassung zu sein, verbindet aber auch Variablen mit leeren Werten.

<xsl:variable name="creatorDescriptors" select ="string-join(($creatorDates, $creatorType, $creatorAttribution, $creatorAffiliation),', ')"/> 

Wie wäre es nur String-Join nicht null xsl: Variablen?

Ich bin derzeit so etwas wie dies bekommen:

Mozart, Wolfgang Amadeus (1756–1791, Composer, ,) 

Antwort

3

diesen Ausdruck Versuchen Sie stattdessen (die Variablennamen mit Ihrem eigenen Variablennamen ersetzt), so dass nur die nicht leeren Knoten in der Reihenfolge ausgewählt werden

<xsl:value-of select="string-join(($a, $b, $c, $d)[. != ''],', ')"/>