Subject: RE: selecting all text between two nodes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 7 Sep 2005 14:16:09 +0100
|
In 2.0:
xsl:template match="hyperlink-start"
xsl:variable name="end" select="following-sibling::hyperlink-end"
xsl:value-of select="following-sibling::text()[. << $end]"
In 1.0 you can use sibling recursion (call a recursive template to process
each following sibling in turn, terminating when you get to the hyperlink
end).
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Lynn Alford [mailto:lynn.alford@xxxxxxxxxx]
> Sent: 07 September 2005 06:11
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: selecting all text between two nodes
>
> I'm looking at transforming some xml that can include
> linking information as
>
> <tx.p style="FD108">Lorem ipsum dolor <tx.hyperlink
> id="FD144" end="FD145">
> <locator_url
> file_name="/courses/handbooks/2005/150_admission.html"
> host_name="www.jcu.edu.au" protocol="http"/>
> <locator_bookmark bookmark_name="title_31161"/>
> </tx.hyperlink>
> <tx.r style="FD113">penatibus et magnis </tx.r>
> <tx.hyperlink_end id="FD145" begin="FD144"/>
> dis parturient montes, nascetur ridiculus mus.
> </tx.p>
>
>
> <tx.r style="FD206">
> <tx.hyperlink id="FD213" end="FD214">
> <locator_url
> file_name="/app/contact/index.cfm"
> host_name="www.jcu.edu.au" protocol="http"/>
> </tx.hyperlink>
> </tx.r>
> <tx.r style="FD207">Student Administration
> (8781)<tx.hyperlink_end id="FD214" begin="FD213"/>
> </tx.r>
>
>
> to be transformed to
>
> <ulink
> url="http://www.jcu.edu.au/courses/handbooks/2005/150_admissio
> n.html#title_31161">
> penatibus et magnis </ulink>
>
> <ulink url="http:www.jcu.edu.au//app/contact/index.cfm"
> id="FD213">Student
> Administration (8781) </ulink>
>
> which means I want to open a ulink - copy all text that
> appears between the
> <tx.hyperlink> and the <tx.hyperlink_end> then close the ulink.
>
>
>
> I can get as far as
>
> <ulink url="http:www.jcu.edu.au/app/contact/index.cfm" id="FD213">
>
> </ulink>
>
> Student Administration (8781)<ulink_end/>
>
> But that really isn't very good.
>
>
>
> Lynn Alford Tel (07) 47 81 6256
> ITR Email: imla@xxxxxxxxxx
> JCU QLD 4811 Australia ICQ: 64096907
> MSN: nicarra60@xxxxxxxxxxx Y!: nicarra60
|