This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Accessing text from node
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] Accessing text from node
- From: "Michael Kay" <mhkay at iclway dot co dot uk>
- Date: Fri, 29 Jun 2001 10:29:29 +0100
- Reply-To: xsl-list at lists dot mulberrytech dot com
> <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