Subject: [xsl] Overlapping structures From: Stuart Brown <Stuart.Brown@xxxxxxxxxxxxx> Date: Tue, 9 Oct 2001 09:49:00 +0100 |
I have an XML document with two overlapping structures. To get round this, for one of the structures I use empty "start" and "end" tags as follows: <a>I said <z.start/>I will watch my ways</a> <a><x/>and keep my tongue from sin<z.end/></a> In my XSL I want to test, from any node <z.start/> if there is the additional empty element <x/> before the next <z.end/> (i.e. if the imaginary "z" element "contains" x). I have not found any way I can achieve this -- any pointers please? Secondly, if I want to invert the structures, so that the "a" tags become the imaginary empty tags and the z tags "real" elements, I am currently cheating to overcome the well-formed constraint as follows (ignoring the x element above): <xsl:template match="a"> <a.start/><xsl:apply-templates/><a.end/> </xsl:template> <xsl:template match="z.start"> <z>!!DELETE_CLOSE_TAG</z> </xsl:template> <xsl:template match="z.end"> <z>!!DELETE_OPEN_TAG</z> </xsl:template> thus generating: <a.start/>I said <z>!!DELETE_CLOSE_TAG</z>I will watch my ways<a.end/> <a.start/>and keep my tongue from sin<z>!!DELETE_OPEN_TAG</z><a.end/> and then running a simple Perl script to get rid of the unwanted tags amd text to result in: <a.start/>I said <z>I will watch my ways<a.end/> <a.start/>and keep my tongue from sin</z><a.end/> However, I would far rather handle this entirely within the XSL stylesheet. Is there any way I can cheat using CDATA sections to overcome the well-formed constraint and directly match <z> to <z.start/> and </z> to <z.end/>? Thanks, Stuart XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Problem with not() functi, Dimitre Novatchev | Thread | Re: [xsl] Overlapping structures, Patrick Durusau |
Re: [xsl] Building a partial refere, David Carlisle | Date | [xsl] Re: XSL-List Digest V3 #1158, Avani Goel |
Month |