adkt
3/19/2018 - 5:22 AM

Node Set

Using ms:node-set node set for xslt version 1.0

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:ms="urn:schemas-microsoft-com:xslt" 
	exclude-result-prefixes="ms">

	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

	<xsl:template match="@* | node()">
        <!-- declare nodelist Result fragment tree -->
		<xsl:variable name="emails">
			<email>AndrewSmith@nNextGen.net</email>
			<email>BlakeGreen@outlock.com</email>
			<email>ClintBeacon@yayWho.com</email>
			<email>DarrenTree@notNextGen.net</email>
			<email>EdwardReady@outlock.com</email>
			<email>Harry@yayWho.com</email>
			<email>Jackson@nNextGen.net</email>
			<email>Erhard@outlock.com</email>
			<email>Johnnie@yayWho.com</email>
			<email>Abner@notNextGen.net</email>
			<email>Emmit@outlock.com</email>
			<email>Alfonse@yayWho.com</email>
		</xsl:variable>

		<xsl:variable name="emailsNodeSet" select="ms:node-set($emails)" />
		<!-- generate a number to pick an email address -->
		<xsl:variable name="positionGenerated" select="position()"/>

		<xsl:value-of select="$emailsNodeSet/email[$positionGenerated]"/>
    </xsl:template>

</xsl:stylesheet>