Get 1st row of data into a variable

I have an xml file as seen below: what I need to get is the values in the first row to set some values in before I process all the rows in the row template.  

I can not figure out how to getl the data in the first row by itself before I run the row template.

XML -data
<?xml version="1.0"?>
<document>
  <row>
    <column1>20100810</column1>
    <column2>20100815</column2>
    <column3>20100817</column3>
    <column4>WLP_PCN_SL_regular_20100816.out</column4>
  </row>
  <row>
    <column1>01300</column1>
  </row>
  <row>
    <column1>01820</column1>
  </row>
  <row>
    <column1>02282</column1>
  </row>
</document>

XSL
  <xsl:template match="/">
    <xsl:apply-templates select="document"/>
  </xsl:template>

  <xsl:template match="document">
  <xsl:variable name="vNameOfDataFile" select="row/@column1"/>

          <ProcessStartWorkDate>
            <Date><xsl:value-of select="$vNameOfDataFile"/></Date>
          </ProcessStartWorkDate>
           
      <xsl:for-each select="row">
        <xsl:apply-templates select="."/>
      </xsl:for-each>
johnth1957Asked:
Who is Participating?
 
Geert BormansConnect With a Mentor Information ArchitectCommented:
of course, the @ should not be there, error in copy and pasting from your mistake, sorry
    <xsl:variable name="vNameOfDataFile" select="/document/row[1]/column4"/>
0
 
Geert BormansInformation ArchitectCommented:
<xsl:variable name="vNameOfDataFile" select="row[1]/@column4"/>
0
 
Geert BormansInformation ArchitectCommented:
the [1] tells you that you need the first row
the name of data file seems to be in column four
note that this variable can only be used in this template,
if you want a global variable put this at the highest level

<xsl:variable name="vNameOfDataFile" select="/document/row[1]/@column4"/>
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
johnth1957Author Commented:
Thanks, I just tried that and still not getting a value in that variable .
0
 
johnth1957Author Commented:
Yes that is the correct column for the variable but I was just trying to get something to work in case I was pulling off another record.
I am declaring and using the variable in the same template.
0
 
Geert BormansInformation ArchitectCommented:
or
<xsl:template match="document">
    <xsl:variable name="vNameOfDataFile" select="row[1]/column4"/>
    <xsl:value-of select="$vNameOfDataFile"/>
</xsl:template>
0
 
johnth1957Author Commented:
Thanks!
0
 
Geert BormansInformation ArchitectCommented:
welcome
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.