I have the following XSLT template

```
<xsl:template match="/root">
    <r>
        <xsl:value-of select="transport/route[not(enddate)]/ship|car/fuel/litres"/>
    </r>
</xsl:template>

```

Which I use to translate the following example XML

```
<root>
    <transport>
        <route>
            <ship> <!-- this can be a car -->
                <fuel>
                    <litres>
                        42
                    </litres>
                </fuel>
            </ship>
        </route>
        <route>
            <enddate>2015-08-21</enddate>
            <car>
                <fuel>
                    <litres>
                        42
                    </litres>
                </fuel>
            </car>
        </route>
    </transport>
</root>

```

Notice that under route I can have a `ship` **OR** a `car`. 

I can't find a way to reduce the xpath exression to only cover for the choice between `ship` and `car`

```
<xsl:value-of select="transport/route[not(enddate)]/ship|car/fuel/litres"/> 

```

To make the above work I have to change it to this:

```
<xsl:value-of 
  select="transport/route[not(enddate)]/ship/fuel/litres | 
          transport/route[not(enddate)]/car/fuel/litres"/> 

```

but I that feels as I'm copying to much of the expression and violates my DRY nature. I tried `transport/route[not(enddate)][car|ship]/fuel/litres` but without success.

What should the expression be if I want to get rid of the duplication of the xpath?