When an element contains other elements interspersed with text, how to maintain the order of the text elements? In this (simplified) example:

```
  <block>1st text<bsub>2nd text</bsub>3rd text</block>

```

the desired output is:

```
  "1st text 2nd text 3rd text"

```

I have tried:

```
  <xsl:template match="block">
    <xsl:value-of select=".">
    <xsl:apply-templates select="bsub"/>
    <xsl:value-of select=".">
  </xsl:template>

  <xsl:template match="bsub">  
    <xsl:value-of select=".">
  </xsl:template>

```

and that outputs:

```
  "1st text 2nd text 3rd text 2nd text 1st text 2nd text 3rd text"

```

How to select the individual text elements (of `<block>`) using `<xsl:value-of>`?