[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Test processing instruction as first preceding sibling


Subject: RE: [xsl] Test processing instruction as first preceding sibling
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 9 Dec 2008 16:09:27 -0000

>         I have a doubt about testing preceding-sibling 
> processing-instruction.
>         I have this xml:
> 
>        <root>
>            <child1>
>                    child 1
>            </child1>
>            <?proc?>
>            <child2>
>                   child 2
>           </child2>
>      </root>
> 
>            And I need to know if child2 has the first 
> preceding-sibling as a processing-instruction. 

This needs care because the immediately preceding sibling is actually a
whitespace text node. If you've used xsl:strip-space to remove such text
nodes, it's

test="preceding-sibling::node()[1][self::processing-instruction()]"

but if you need to ignore such text nodes then it's

test="preceding-sibling::node()[not(self::text()[normalize-space()=''])][1][
self::processing-instruction()]"

Michael Kay
http://www.saxonica.com/


Current Thread