RE: RE: [xsl] Extract First node

Subject: RE: RE: [xsl] Extract First node
From: cknell@xxxxxxxxxx
Date: Thu, 01 Sep 2005 21:27:39 -0400
Sorry. I was too hasty with the latter example. Here is the correct one.

<xsl:copy-of select="b/c[@type='pdf'][1]"/>

-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     cknell@xxxxxxxxxx
Sent:     Thu, 01 Sep 2005 21:20:10 -0400
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  RE: [xsl] Extract First node

Do you want the element or the text contained in the element? The xsl:value-of returns the latter. If that is what you want then change your template to this:

<xsl:value-of select="b/c[@type='pdf'][1]"/>

If it is the former then your template should be:

<xsl:copy-of select="b/c[attribute::className='pdf'][1]"/>
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     SINGH Navpreet <Navpreet.SINGH@xxxxxxxxx>
Sent:     Fri, 2 Sep 2005 10:23:12 +1000
To:       <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject:  [xsl] Extract First node

Hi
I am having a problem with XPath expression for XSLT. I am trying to extract a node from xml with a special attribute. For example
<a>
  <b>
    <c type="html">HTML file</c>
  </b>
  <b>
    <c type="text">Text File</c>
  </b>
  <b>
    <c type="pdf">First Pdf File</c>
  </b>
  <b>
    <c type="pdf">Second Pdf File</c>
  </b>
  <b>
    <c type="rtf">Rtf File</c>
  </b>
</a>

Element <c> can appear in any order and there could be a number of <c> with attribute type="pdf". I want to extract the first occurence of the element <c> which has a attribute type="pdf". I tried to extract it with
<xsl:value-of select="b/c[attribute::className='pdf'][1]"/>
after matching the template for <a>. But I am getting "First Pdf File Second Pdf File". Can anyone tell me where I am making mistake. I am using Saxon-B8.5.
Thanks
Navpreet. 

Current Thread