Mike said:
Is there a way in XSLT to match on numbers that are delimited by a character
or space in a text node?
XSLT 2.0 can do that nicely with the tokenize XPath 2.0 function e.g.
with the input being
<?xml version="1.0" encoding="UTF-8"?>
<root>
<data-list>1 2 3 4 5</data-list>
</root>
and the stylesheet
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl
utput method="xml" indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="data-list">
<xsl:copy>
<xsl:for-each select="tokenize(., '\s+')">
<data><xsl:value-of select="." /></data>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
the result using Saxon 8.3 is
<?xml version="1.0" encoding="UTF-8"?>
<root>
<data-list>
<data>1</data>
<data>2</data>
<data>3</data>
<data>4</data>
<data>5</data>
</data-list>
</root>
If you want to use XSLT 1.0 then you need to write a recursive template
taking the string with the numbers as the argument and splitting it up
using XPath 1.0 functions like substring-before, substring-after etc.