|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] AW: Matching two consecutive <br><br>
Thanks Micheal and David! It's always a pleasure asking question on this list. I tried my matching again with xalan and found it worked - strange, maybe I had indeed some space between the <br/>. Actually I don't understand completely what your matching does: br[following-sibling::node()[1][self::br]] Could you be so kind and translate the predicates into plain english to help my understanding - I'm especially keen on knowing to which node "self" maps and in which order the predicates are mapped to the node sets? Thanks, Stefan -----Urspr|ngliche Nachricht----- Von: Michael Kay [mailto:mhk@xxxxxxxxx] Gesendet: Monday, August 23, 2004 11:47 AM An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: RE: Matching two consecutive <br><br> > > don't use name() in these kinds of tests: > name(following-sibling::node()[1])='br' > use > following-sibling::node()[1][self::br] > > > But this does not work for Xalan 2. > > looks correct to me, when you say it didn't work, what did it > do? error? wrong answer? My guess is that there was a whitespace text node between the two <BR/> elements, which MSXML silently ignored. You can replicate this behavior in a conformant XSLT processor using <xsl:strip-space elements="*"/>, but you probably don't want to, because it will also strip the space in <p><b>Reason:</b> <i>not applicable</i></p> Safer is to refine the test to be: following-sibling::node()[not(self::text()[not(normalize-space(.))][1][self: :br] Michael Kay
|
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








