This may sound repetitive question but I am not able to understand some basic xslt concepts
Actually I am very new to the concepts of xslt and have been working on how to transform a text document to xml .
However I found out following XSLt in stackoverlow(Regular text file to XML using XSLT)
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ext="http://exslt.org/common"
xmlns:my="my:my" exclude-result-prefixes="ext my">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<my:fieldNames>
<name>FirstName</name>
<name>LastName</name>
<name>City</name>
<name>State</name>
<name>Zip</name>
</my:fieldNames>
<xsl:variable name="vfieldNames" select=
"document('')/*/my:fieldNames"/>
<xsl:template match="/">
<xsl:variable name="vrtfTokens">
<xsl:apply-templates/>
</xsl:variable>
<xsl:variable name="vTokens" select=
"ext:node-set($vrtfTokens)"/>
<results>
<xsl:apply-templates select="$vTokens/*"/>
</results>
</xsl:template>
<xsl:template match="text()" name="tokenize">
<xsl:param name="pText" select="."/>
<xsl:if test="string-length($pText)">
<xsl:variable name="vWord" select=
"substring-before(concat($pText, '^'),'^')"/>
<word>
<xsl:value-of select="$vWord"/>
</word>
<xsl:call-template name="tokenize">
<xsl:with-param name="pText" select=
"substring-after($pText,'^')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template match="word">
<xsl:variable name="vPos" select="position()"/>
<field>
<xsl:element name="{$vfieldNames/*[position()=$vPos]}">
</xsl:element>
<value><xsl:value-of select="."/></value>
</field>
</xsl:template>
</xsl:stylesheet>
but actually could not get what is happening in this xslt like what doe the following code mean
<xsl:variable name="vfieldNames" select="document('')/*/my:fieldNames"/> (What is selected in the following code)?
Folloing is text document
XXX^YYYY^AAAAA^XXXXXX^AAAAAA....
Following is the output
<name>XXX</name>
<l_name>YYYY</l_name>
Thanks