xsl-list
[Top] [All Lists]

AW: Matching two consecutive <br><br>

2004-08-23 03:14:03
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(_at_)mhk(_dot_)me(_dot_)uk] 
Gesendet: Monday, August 23, 2004 11:47 AM
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: RE: [xsl] 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





--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--



<Prev in Thread] Current Thread [Next in Thread>