Or, in XSLT2:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="str" select="'abc|def'"/>
<xsl:variable name="seq" select="tokenize($str,'\|')"/>
<xsl:template match="x">
<x>
<xsl:apply-templates select="main-element"/>
</x>
</xsl:template>
<xsl:template match="main-element">
<xsl:variable name="p" select="position()"/>
<header>
<xsl:value-of select="$seq[min(($p,last()))]"/>
</header>
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
$ saxon8 sigh.xml sigh2.xsl
<?xml version="1.0" encoding="UTF-8"?>
<x>
<header>abc</header>
<main-element>
<fid id="DATA_STATUS">0</fid>
</main-element>
<header>def</header>
<main-element>
<fid id="DATA_STATUS">1</fid>
</main-element>
<header>def</header>
<main-element>
<fid id="DATA_STATUS">2</fid>
</main-element>
</x>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--