This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: parent -child


Hi Srikanth,

> How do i read the value of the child element and print the value of
> the parent element
>
> xml:
> <a>1
> <b>2
> <c>3</c>
> <d>4</d>
> </b>
> </a>
>
> I need to check  for the value of [c=3] and print 2

The simple answer would be to get the value of (using xsl:value-of)
the b element whose child c element is equal to 3:

  <xsl:value-of select="b[c = 3]" />

However, the b element holds mixed content. In a tree it would look
like (&#xA; indicates line breaks):

+- (element) b
   +- (text) 2&#xA;
   +- (element) c
   |  +- (text) 3
   +- (text) &#xA;
   +- (element) d
   |  +- (text) 4
   +- (text) &#xA;

So you want the normalized version of the (first) text node child of
the b element whose child c element is equal to 3:

  <xsl:value-of select="normalize-space(b[c = 3]/text())" />

You can drop the normalize-space() if you don't care about the line
break being output.
  
Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]