This answer assumes that you cannot change the input document. Use string replacement to transform the br
string into an actual line break. With XSLT 1.0, the standard way of doing string replacement is by writing a recursive template.
XSLT Stylesheet
The named template is shamelessly stolen from Mads' answer here which in turn borrows from Dave Pawson.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:b="http://crownpublishing.com/imprint/crown-business/" version="1.0"
exclude-result-prefixes="b">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<result>
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="/s/b:bio/b:about"/>
<xsl:with-param name="replace" select="'<br />'" />
<xsl:with-param name="with" select="' '"/>
</xsl:call-template>
</result>
</xsl:template>
<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
XML Output
<?xml version="1.0" encoding="utf-8"?>
<result>
This Picture was created by
Type-Style back in 2007.
</result>
Try this solution online here.