[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Overlapping structures
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|