title: xsl string-join() multiple variables - only use non-empty
body: <p>I'd like to create several xsl:variable that may or may not be null then join them:</p>
  
  <pre><code>&lt;xsl:variable name="creatorType" select="replace(lib:merge(subfields/subfield[matches(@code,'[e]')],' '),'author|[.$]','')" /&gt;
  &lt;xsl:variable name="creatorAttribution" select="replace(lib:merge(subfields/subfield[matches(@code,'[j]')],' '),'[,-.]$','')" /&gt;
  &lt;xsl:variable name="creatorNameFullForm" select="replace(lib:merge(subfields/subfield[matches(@code,'[q]')],' '),'[,-()]$','')" /&gt;
  &lt;xsl:variable name="creatorAffiliation" select="replace(lib:merge(subfields/subfield[matches(@code,'[u]')],' '),'[,-.]$','')" /&gt;
  </code></pre>
  
  <p>string-join((xsl:sequence), 'delimiter') seems like a good fit but also joins variables with empty values.</p>
  
  <pre><code>&lt;xsl:variable name="creatorDescriptors" select ="string-join(($creatorDates, $creatorType, $creatorAttribution, $creatorAffiliation),', ')"/&gt;
  </code></pre>
  
  <p>How would you have it only string-join non-null xsl:variables?</p>
  
  <p>I'm currently getting something like this:</p>
  
  <pre><code>  Mozart, Wolfgang Amadeus (1756–1791, Composer, , )
  </code></pre>