|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: How can I test the last preceding text character?
Replace preceding-sibling::*[1]/text()[last()] with preceding-sibling::node()[1] If the preceding sibling is an element node, you'll get its string value automatically, you don't need to get it's text node children explicitly. There's also an ends-with() function in 2.0 which might be clearer than regular expressions for such a simple job. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Sascha Mantscheff [mailto:922492@xxxxxx] > Sent: 29 October 2007 21:28 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: How can I test the last preceding text character? > > How do I test if the very last character of any preceding > text - be it in a parent or a sibling - has a certain value? > Example: > > <a> > This is parent text a not ending with an x. > <d>This ends with an x</d> > <e>This should issue a message.</e> > This is parent text ending with an x </a> > > Now I want to know for each child element is if it is > preceded by an "x". > I can check the sibling with > > <xsl:if test="matches(preceding-sibling::*[1]/text()[last()],'x\$') "> > <xsl:message> > Element <xsl:value-of select="name()"/> is preceded by an x. > </xsl:message> > </xsl:if> > > But I cannot test the surrounding parent content with the > same model because the parent text may surround the child text. > > What's the way to do it?
|
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
|

Cart








