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: Accessing text from node


> 	<choice name="news" key="type">
>                 <action type="soft1"  label="CBSMW" ></action>
>                 <action type="accept" label="Go" ></action>
> 	          News
>                 <ce value="rt.asp">RealTime Headlines</ce>
> 		    <ce value="mp.asp">MarketPulse</ce>
> 		    <ce value="tn.asp">Ticker News</ce>
> 	</choice>
>
> >From this node to access text "News" if I use <xsl:value-of
> select="text()[count(action)+1]"/> This does not give me text
> "News". If I
> use digit 3 like this:
> 	<xsl:value-of select="text()[3]"/> This gives me text
> "News".

I can't see any explanation for this: if your context node is the <choice>
element above, then count(action)+1 should give 3. What processor are you
using, and does it give the same result on a different processor?

The reason that "News" is the third text node is that there is a whitespace
text node before each <action> element.

As others have said, it would be much cleaner design to wrap the text in
another element.

If I knew that I wanted the text following the last <action>, I would tend
to reference it as action[last()]/following-sibling::text()[1], but that
doesn't mean your approach is incorrect.

Mike Kay
Software AG
>


 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]