[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Extract First node


Subject: RE: [xsl] Extract First node
From: "SINGH Navpreet" <Navpreet.SINGH@xxxxxxxxx>
Date: Fri, 2 Sep 2005 11:50:13 +1000

I need the text but your suggested expression <xsl:value-of
select="b/c[@type='pdf'][1]"/> gives the same output.

-----Original Message-----
From: cknell@xxxxxxxxxx [mailto:cknell@xxxxxxxxxx]
Sent: Friday, 2 September 2005 11:20 AM
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
Keywords