[xsl] To self or not to self

Subject: [xsl] To self or not to self
From: ihe onwuka <ihe.onwuka@xxxxxxxxxxxxxx>
Date: Fri, 27 Jan 2012 15:12:07 +0000
I wanted to isolate the figure element that has a figure as an
immediate preceding sibling.

       <section role="All_models">
            <title>All models</title>
            <figure role="Harness_multi-plug">
                <title>ECU harness multi-plug</title>
                <mediaobject>
                    <imageobject>
                        <imagedata fileref="78650"/>
                    </imageobject>
                </mediaobject>
            </figure>
            <figure role="Circuit_diagram">
                <title>System circuit diagram</title>
                <mediaobject>
                    <imageobject>
                        <imagedata fileref="31544"/>
                    </imageobject>
                </mediaobject>
            </figure>
        </section>

I settled on //figure/preceding-sibling::*[1][figure] but it gave back
nothing and would only work when I used the explicit form of the self
axis.

I settled on //figure/preceding-sibling::*[1][self::figure]

However if I want the title element immediately preceding figure I
don't need to use the explicit form. This works

//figure/preceding-sibling::*[1][title]

So what is going on in this particular case (because I don't
understand the difference), and in general when is explicit self
required.

Current Thread