[Home] [By Thread] [By Date] [Recent Entries]
One strategy in XSLT 2.0 would be to test for the existence of a space at the
end of the preceding node and add a space if it's not there:
<xsl:template match="unittitle">
<xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:template> <xsl:template match="unitdate">
<xsl:choose>
<xsl:when test="preceding-sibling::node()[1][matches(., '\s$')]">
<xsl:value-of select="."/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat(' ', .)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>which will give you <unittitle>Statements 2001</unittitle> <unittitle>Statements 2001</unittitle> but the following should accomplish the same thing with more concision and is more robust as it will handle multiple spaces before <unitdate> if they occur: <xsl:template match="unittitle">
<xsl:copy>
<xsl:value-of select="string-join((normalize-space(text()), unitdate), ' ')"/>
</xsl:copy>
</xsl:template>DS On Tue, 8 Oct 2013, Nathan Tallman wrote: Is it possible to test a character immediately preceding a node? I have an element with child-elements, my trouble is that sometimes there is a space before the child-element, sometimes not. For example I might have:
|

Cart



