|
<!-- These tests check whether <xpath> matches the <tree>; they make
no statement as to *what* gets matched. New tests should be added
to the end of this document; there is no other form of ID for the
tests except for their order. -->
<tests>
<test>
<xpath>//mu[@xml:id="id1"]//rho[@title][@xml:lang="en-GB"][following-sibling::*[position()=1]][following-sibling::rho[@object="this.nodeValue"][@xml:id="id2"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/epsilon[@object][@xml:lang="no-nb"][not(child::node())][following-sibling::alpha[@xml:lang="no"][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::phi[starts-with(concat(@content,"-"),"_blank-")][not(following-sibling::*)]/iota[@xml:lang="no"][@xml:id="id4"][not(preceding-sibling::*)][not(child::node())][following-sibling::psi[@xml:lang="en"][@xml:id="id5"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][following-sibling::zeta[@insert][@xml:lang="en-GB"][@xml:id="id6"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]/lambda[@xml:lang="en"][@xml:id="id7"][not(preceding-sibling::*)][following-sibling::delta[contains(concat(@object,"$"),"se$")][preceding-sibling::*[position() = 1]]//mu[@attrib][@xml:lang="en-GB"]/omicron[contains(concat(@false,"$"),"lse$")][@xml:id="id8"][not(preceding-sibling::*)][not(child::node())][following-sibling::beta[@xml:id="id9"][not(following-sibling::*)]/rho[contains(concat(@attr,"$"),"100%$")][not(preceding-sibling::*)][following-sibling::tau[@xml:lang="no"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=3]][following-sibling::*[@xml:lang="en-US"][@xml:id="id10"][not(child::node())][following-sibling::alpha[contains(concat(@att,"$"),"rue$")][following-sibling::omicron[@xml:lang="no"][@xml:id="id11"][preceding-sibling::*[position() = 4]][not(following-sibling::*)]//omicron[contains(concat(@abort,"$"),"tt-value$")][@xml:lang="en"]/upsilon[starts-with(concat(@string,"-"),"100%-")][@xml:lang="no-nb"][@xml:id="id12"]]]][position() = 1]]]][position() = 1]][position() = 1]][position() = 1]]]]</xpath>
<result>
<namespace/>
<localname>rho</localname>
<nth>0</nth>
</result>
<tree>
<mu xml:id="id1">
<rho title="123456789" xml:lang="en-GB"/>
<rho object="this.nodeValue" xml:id="id2">
<epsilon object="solid 1px green" xml:lang="no-nb"/>
<alpha xml:lang="no" xml:id="id3"/>
<phi content="_blank">
<iota xml:lang="no" xml:id="id4"/>
<psi xml:lang="en" xml:id="id5"/>
<zeta insert="true" xml:lang="en-GB" xml:id="id6">
<lambda xml:lang="en" xml:id="id7"/>
<delta object="false">
<mu attrib="another attribute value" xml:lang="en-GB">
<omicron false="false" xml:id="id8"/>
<beta xml:id="id9">
<rho attr="100%"/>
<tau xml:lang="no"/>
<any xml:lang="en-US" xml:id="id10"/>
<alpha att="true"/>
<omicron xml:lang="no" xml:id="id11">
<omicron abort="this-is-att-value" xml:lang="en">
<upsilon string="100%" xml:lang="no-nb" xml:id="id12">
<green>This text must be green</green>
</upsilon>
</omicron>
</omicron>
</beta>
</mu>
</delta>
</zeta>
</phi>
</rho>
</mu>
</tree>
</test>
<test>
<xpath>//pi[@xml:lang="no"][@xml:id="id1"]//iota[@attribute][@xml:id="id2"][not(following-sibling::*)]/phi[@object][@xml:id="id3"][not(following-sibling::*)]//pi[starts-with(concat(@number,"-"),"another attribute value-")][not(preceding-sibling::*)][not(following-sibling::*)]//xi[@xml:id="id4"][not(preceding-sibling::*)]/xi[@xml:id="id5"]/eta[@insert][@xml:lang="en"][@xml:id="id6"][not(preceding-sibling::*)][following-sibling::omega[@xml:lang="no-nb"][@xml:id="id7"][preceding-sibling::*[position() = 1]][following-sibling::nu[following-sibling::*[position()=1]][not(child::node())][following-sibling::phi[@desciption][@xml:id="id8"]/kappa[not(preceding-sibling::*)]/beta[starts-with(concat(@insert,"-"),"100%-")][not(child::node())][following-sibling::eta[starts-with(concat(@token,"-"),"content-")][not(following-sibling::*)]//pi[@and="_blank"][@xml:lang="no"][@xml:id="id9"][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@xml:id="id10"]/psi[starts-with(@and,"another attribut")][@xml:lang="en"][@xml:id="id11"][not(preceding-sibling::*)][not(child::node())][following-sibling::omega[@title="attribute"][following-sibling::eta[@or="solid 1px green"][@xml:id="id12"][following-sibling::lambda[@xml:lang="no"][@xml:id="id13"][following-sibling::theta[@xml:lang="nb"][preceding-sibling::*[position() = 4]][not(following-sibling::*)]/epsilon[@object][@xml:id="id14"][not(following-sibling::*)][position() = 1]]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<result>
<namespace/>
<localname>eta</localname>
<nth>0</nth>
</result>
<tree>
<pi xml:lang="no" xml:id="id1">
<iota attribute="this-is-att-value" xml:id="id2">
<phi object="attribute-value" xml:id="id3">
<pi number="another attribute value">
<xi xml:id="id4">
<xi xml:id="id5">
<eta insert="another attribute value" xml:lang="en" xml:id="id6"/>
<omega xml:lang="no-nb" xml:id="id7"/>
<nu/>
<phi desciption="_blank" xml:id="id8">
<kappa>
<beta insert="100%"/>
<eta token="content">
<pi and="_blank" xml:lang="no" xml:id="id9"/>
<eta xml:id="id10">
<psi and="another attribute value" xml:lang="en" xml:id="id11"/>
<omega title="attribute"/>
<eta or="solid 1px green" xml:id="id12"/>
<lambda xml:lang="no" xml:id="id13"/>
<theta xml:lang="nb">
<epsilon object="123456789" xml:id="id14">
<green>This text must be green</green>
</epsilon>
</theta>
</eta>
</eta>
</kappa>
</phi>
</xi>
</xi>
</pi>
</phi>
</iota>
</pi>
</tree>
</test>
<test>
<xpath>//pi[starts-with(@attribute,"attribute val")][@xml:lang="en-US"][@xml:id="id1"]/upsilon[starts-with(concat(@attribute,"-"),"this.nodeValue-")][not(preceding-sibling::*)][not(following-sibling::*)]//xi[@xml:lang="no-nb"][@xml:id="id2"][not(following-sibling::*)]/epsilon[following-sibling::epsilon[contains(@attrib,"10")][preceding-sibling::*[position() = 1]][following-sibling::xi[preceding-sibling::*[position() = 2]]//lambda[@xml:lang="en"][@xml:id="id3"][not(child::node())][following-sibling::eta[@insert][preceding-sibling::*[position() = 1]][following-sibling::omega[@token][@xml:lang="nb"][not(child::node())][following-sibling::kappa[starts-with(concat(@object,"-"),"this.nodeValue-")][@xml:lang="no-nb"][@xml:id="id4"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::xi[contains(@true,"e")][@xml:id="id5"][not(child::node())][following-sibling::phi[@xml:lang="nb"][@xml:id="id6"][preceding-sibling::*[position() = 5]][not(child::node())][following-sibling::nu[following-sibling::*[position()=1]][following-sibling::zeta[starts-with(concat(@object,"-"),"attribute-")]//kappa[@xml:lang="nb"][not(preceding-sibling::*)][following-sibling::chi[@xml:lang="nb"][following-sibling::theta[@xml:lang="no"][following-sibling::*[position()=1]][following-sibling::xi[contains(concat(@name,"$"),"789$")][@xml:lang="no"]/tau[@xml:lang="en"][not(preceding-sibling::*)]/beta[@xml:lang="en-GB"][@xml:id="id7"][not(following-sibling::*)]][position() = 1]][position() = 1]]]]][position() = 1]][position() = 1]]]]]]</xpath>
<result>
<namespace/>
<localname>epsilon</localname>
<nth>0</nth>
</result>
<tree>
<pi attribute="attribute value" xml:lang="en-US" xml:id="id1">
<upsilon attribute="this.nodeValue">
<xi xml:lang="no-nb" xml:id="id2">
<epsilon/>
<epsilon attrib="100%"/>
<xi>
<lambda xml:lang="en" xml:id="id3"/>
<eta insert="false"/>
<omega token="content" xml:lang="nb"/>
<kappa object="this.nodeValue" xml:lang="no-nb" xml:id="id4"/>
<xi true="true" xml:id="id5"/>
<phi xml:lang="nb" xml:id="id6"/>
<nu/>
<zeta object="attribute">
<kappa xml:lang="nb"/>
<chi xml:lang="nb"/>
<theta xml:lang="no"/>
<xi name="123456789" xml:lang="no">
<tau xml:lang="en">
<beta xml:lang="en-GB" xml:id="id7">
<green>This text must be green</green>
</beta>
</tau>
</xi>
</zeta>
</xi>
</xi>
</upsilon>
</pi>
</tree>
</test>
<test>
<xpath>//rho[@xml:id="id1"]/xi[@src][@xml:lang="nb"][@xml:id="id2"][not(following-sibling::*)]//eta[not(preceding-sibling::*)][not(following-sibling::*)]//mu[@xml:id="id3"][not(child::node())][following-sibling::omega[starts-with(@name,"this.nodeVal")]//rho[not(preceding-sibling::*)][following-sibling::*[position()=1]][not(child::node())][following-sibling::nu[contains(@attrib," gree")][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/lambda[starts-with(concat(@insert,"-"),"100%-")][@xml:lang="no"][not(following-sibling::*)]/gamma[starts-with(@attrib,"attribu")][@xml:lang="en-GB"][not(child::node())][following-sibling::delta[@xml:lang="en-US"][preceding-sibling::*[position() = 1]][following-sibling::sigma[starts-with(concat(@number,"-"),"_blank-")][preceding-sibling::*[position() = 2]][following-sibling::*[position()=1]][following-sibling::omega[starts-with(concat(@false,"-"),"this-")][not(following-sibling::*)]/epsilon[starts-with(concat(@true,"-"),"attribute-")]][position() = 1]]]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>mu</localname>
<nth>0</nth>
</result>
<tree>
<rho xml:id="id1">
<xi src="_blank" xml:lang="nb" xml:id="id2">
<eta>
<mu xml:id="id3"/>
<omega name="this.nodeValue">
<rho/>
<nu attrib="solid 1px green">
<lambda insert="100%" xml:lang="no">
<gamma attrib="attribute" xml:lang="en-GB"/>
<delta xml:lang="en-US"/>
<sigma number="_blank"/>
<omega false="this-is-att-value">
<epsilon true="attribute-value">
<green>This text must be green</green>
</epsilon>
</omega>
</lambda>
</nu>
</omega>
</eta>
</xi>
</rho>
</tree>
</test>
<test>
<xpath>//rho[@xml:lang="no-nb"]//tau[@attr][not(preceding-sibling::*)]/alpha[@xml:lang="en-GB"][following-sibling::*[position()=6]][not(child::node())][following-sibling::phi[starts-with(@number,"attribute val")][preceding-sibling::*[position() = 1]][following-sibling::psi[preceding-sibling::*[position() = 2]][following-sibling::phi[not(child::node())][following-sibling::psi[@xml:lang="no"][@xml:id="id1"][preceding-sibling::*[position() = 4]][not(child::node())][following-sibling::zeta[@number][@xml:id="id2"][preceding-sibling::*[position() = 5]][following-sibling::psi[@attrib][@xml:id="id3"][preceding-sibling::*[position() = 6]][not(following-sibling::*)]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>alpha</localname>
<nth>0</nth>
</result>
<tree>
<rho xml:lang="no-nb">
<tau attr="attribute value">
<alpha xml:lang="en-GB"/>
<phi number="attribute value"/>
<psi/>
<phi/>
<psi xml:lang="no" xml:id="id1"/>
<zeta number="this-is-att-value" xml:id="id2"/>
<psi attrib="attribute value" xml:id="id3">
<green>This text must be green</green>
</psi>
</tau>
</rho>
</tree>
</test>
<test>
<xpath>//sigma[@and][@xml:id="id1"]/beta[@name][@xml:lang="en"][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]/tau[@xml:id="id3"][not(following-sibling::*)]//beta[following-sibling::*[position()=3]][not(child::node())][following-sibling::theta[not(child::node())][following-sibling::eta[contains(concat(@object,"$"),"rue$")][following-sibling::*[position()=1]][not(child::node())][following-sibling::omicron[contains(concat(@data,"$"),"ttribute-value$")][@xml:id="id4"][not(following-sibling::omicron)]/alpha[@xml:lang="no"][@xml:id="id5"][following-sibling::kappa[@token="content"][@xml:lang="no"][@xml:id="id6"][preceding-sibling::*[position() = 1]][not(following-sibling::*)][position() = 1]][position() = 1]]]]</xpath>
<result>
<namespace/>
<localname>beta</localname>
<nth>1</nth>
</result>
<tree>
<sigma and="_blank" xml:id="id1">
<beta name="content" xml:lang="en" xml:id="id2">
<tau xml:id="id3">
<beta/>
<theta/>
<eta object="true"/>
<omicron data="attribute-value" xml:id="id4">
<alpha xml:lang="no" xml:id="id5"/>
<kappa token="content" xml:lang="no" xml:id="id6">
<green>This text must be green</green>
</kappa>
</omicron>
</tau>
</beta>
</sigma>
</tree>
</test>
<test>
<xpath>//lambda/kappa[contains(@false,"attribut")][@xml:id="id1"]/rho[starts-with(concat(@object,"-"),"false-")][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::chi[@content][not(following-sibling::*)]/beta[@xml:lang="no"][@xml:id="id3"][not(preceding-sibling::*)]/psi[contains(concat(@and,"$"),"bute value$")][@xml:id="id4"][not(preceding-sibling::*)][following-sibling::*[position()=1]][following-sibling::alpha[starts-with(concat(@insert,"-"),"attribute-")][@xml:lang="no-nb"][@xml:id="id5"][preceding-sibling::*[position() = 1]]//kappa[@title][@xml:id="id6"][not(following-sibling::*)]//epsilon[contains(concat(@attrib,"$"),"e$")][@xml:id="id7"][not(child::node())][following-sibling::xi[@number][@xml:id="id8"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::omicron[@xml:id="id9"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]//theta[@xml:lang="no-nb"][@xml:id="id10"][not(preceding-sibling::*)][not(child::node())][following-sibling::tau[@xml:lang="en"][preceding-sibling::*[position() = 1]][following-sibling::omega[@xml:id="id11"][not(following-sibling::*)]/rho[starts-with(@delete,"c")][@xml:id="id12"][following-sibling::alpha[@name][@xml:lang="no-nb"][preceding-sibling::*[position() = 1]][following-sibling::phi[@abort][@xml:lang="nb"][@xml:id="id13"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>rho</localname>
<nth>0</nth>
</result>
<tree>
<lambda>
<kappa false="attribute" xml:id="id1">
<rho object="false" xml:id="id2"/>
<chi content="content">
<beta xml:lang="no" xml:id="id3">
<psi and="attribute value" xml:id="id4"/>
<alpha insert="attribute" xml:lang="no-nb" xml:id="id5">
<kappa title="another attribute value" xml:id="id6">
<epsilon attrib="true" xml:id="id7"/>
<xi number="true" xml:id="id8"/>
<omicron xml:id="id9">
<theta xml:lang="no-nb" xml:id="id10"/>
<tau xml:lang="en"/>
<omega xml:id="id11">
<rho delete="content" xml:id="id12"/>
<alpha name="true" xml:lang="no-nb"/>
<phi abort="100%" xml:lang="nb" xml:id="id13">
<green>This text must be green</green>
</phi>
</omega>
</omicron>
</kappa>
</alpha>
</beta>
</chi>
</kappa>
</lambda>
</tree>
</test>
<test>
<xpath>//phi[@attr="100%"]//beta[contains(concat(@delete,"$"),"k$")][@xml:lang="en"][not(preceding-sibling::*)]/phi[not(preceding-sibling::*)][not(following-sibling::*)]//iota[@xml:lang="en-GB"][not(following-sibling::*)]//kappa[following-sibling::nu[@name][following-sibling::*[position()=3]][following-sibling::*[@name][not(child::node())][following-sibling::sigma[starts-with(concat(@token,"-"),"another attribute value-")][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::lambda[@xml:id="id1"][preceding-sibling::*[position() = 4]][not(following-sibling::*)]/rho[contains(concat(@class,"$"),"123456789$")][not(preceding-sibling::*)][following-sibling::epsilon[@xml:lang="nb"][@xml:id="id2"]/xi//beta[@xml:lang="en-US"][@xml:id="id3"][not(preceding-sibling::*)][not(child::node())][following-sibling::epsilon[starts-with(@abort,"fa")][@xml:id="id4"][following-sibling::phi[@true][@xml:id="id5"][following-sibling::*[position()=1]][following-sibling::nu[@string="another attribute value"][@xml:lang="no"][@xml:id="id6"][not(following-sibling::*)]/phi[contains(concat(@token,"$"),"1px green$")][not(preceding-sibling::*)]/theta[@xml:lang="no-nb"][not(following-sibling::*)]//lambda[@attr][not(preceding-sibling::*)][not(following-sibling::*)][not(following-sibling::lambda)]/*[following-sibling::*[position()=1]][following-sibling::psi[contains(concat(@desciption,"$"),"n$")][@xml:id="id7"][preceding-sibling::*[position() = 1]]//theta[contains(@src,"ue")][@xml:id="id8"][not(preceding-sibling::*)][not(following-sibling::*)]]][position() = 1]][position() = 1]][position() = 1]]]][position() = 1]]]</xpath>
<result>
<namespace/>
<localname>kappa</localname>
<nth>0</nth>
</result>
<tree>
<phi attr="100%">
<beta delete="_blank" xml:lang="en">
<phi>
<iota xml:lang="en-GB">
<kappa/>
<nu name="this-is-att-value"/>
<any name="this.nodeValue"/>
<sigma token="another attribute value"/>
<lambda xml:id="id1">
<rho class="123456789"/>
<epsilon xml:lang="nb" xml:id="id2">
<xi>
<beta xml:lang="en-US" xml:id="id3"/>
<epsilon abort="false" xml:id="id4"/>
<phi true="attribute-value" xml:id="id5"/>
<nu string="another attribute value" xml:lang="no" xml:id="id6">
<phi token="solid 1px green">
<theta xml:lang="no-nb">
<lambda attr="100%">
<any/>
<psi desciption="solid 1px green" xml:id="id7">
<theta src="attribute value" xml:id="id8">
<green>This text must be green</green>
</theta>
</psi>
</lambda>
</theta>
</phi>
</nu>
</xi>
</epsilon>
</lambda>
</iota>
</phi>
</beta>
</phi>
</tree>
</test>
<test>
<xpath>//gamma[starts-with(@data,"tr")][@xml:lang="no"][@xml:id="id1"]//omicron[starts-with(concat(@class,"-"),"attribute value-")]/rho[@xml:lang="no-nb"][not(preceding-sibling::*)][not(following-sibling::*)]/rho[@xml:lang="no"][@xml:id="id2"]//omega[@xml:lang="no-nb"][@xml:id="id3"][not(preceding-sibling::*)][following-sibling::theta[@xml:lang="no-nb"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::delta[starts-with(@object,"conten")][preceding-sibling::*[position() = 2]][following-sibling::zeta[preceding-sibling::*[position() = 3]][following-sibling::omicron[@object][@xml:lang="en-GB"][preceding-sibling::*[position() = 4]][not(child::node())][following-sibling::mu[contains(@delete,"_b")][@xml:lang="no"][@xml:id="id4"][following-sibling::pi[@xml:lang="no"][not(following-sibling::*)]/alpha[@desciption][@xml:lang="en-US"][not(child::node())][following-sibling::upsilon[contains(concat(@attribute,"$"),"eValue$")][@xml:lang="en-GB"][not(following-sibling::*)]/phi[starts-with(@title,"solid 1p")][@xml:lang="en-US"][@xml:id="id5"][not(following-sibling::*)][not(preceding-sibling::phi)]/epsilon[@xml:lang="no-nb"][not(preceding-sibling::*)][following-sibling::*[position()=2]][following-sibling::alpha[@token][@xml:lang="en-US"][@xml:id="id6"][following-sibling::rho[@xml:id="id7"][not(following-sibling::*)][position() = 1]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]]]</xpath>
<result>
<namespace/>
<localname>omega</localname>
<nth>0</nth>
</result>
<tree>
<gamma data="true" xml:lang="no" xml:id="id1">
<omicron class="attribute value">
<rho xml:lang="no-nb">
<rho xml:lang="no" xml:id="id2">
<omega xml:lang="no-nb" xml:id="id3"/>
<theta xml:lang="no-nb"/>
<delta object="content"/>
<zeta/>
<omicron object="100%" xml:lang="en-GB"/>
<mu delete="_blank" xml:lang="no" xml:id="id4"/>
<pi xml:lang="no">
<alpha desciption="100%" xml:lang="en-US"/>
<upsilon attribute="this.nodeValue" xml:lang="en-GB">
<phi title="solid 1px green" xml:lang="en-US" xml:id="id5">
<epsilon xml:lang="no-nb"/>
<alpha token="content" xml:lang="en-US" xml:id="id6"/>
<rho xml:id="id7">
<green>This text must be green</green>
</rho>
</phi>
</upsilon>
</pi>
</rho>
</rho>
</omicron>
</gamma>
</tree>
</test>
<test>
<xpath>//mu/iota[starts-with(concat(@desciption,"-"),"attribute-")][not(child::node())][following-sibling::lambda[contains(concat(@or,"$"),"tribute-value$")][@xml:id="id1"][preceding-sibling::*[position() = 1]]//pi[starts-with(concat(@name,"-"),"false-")][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::sigma[@name][not(child::node())][following-sibling::mu[following-sibling::zeta[@true][@xml:lang="en-US"][@xml:id="id3"][preceding-sibling::*[position() = 3]][following-sibling::*[position()=2]][following-sibling::tau[starts-with(@abort,"_bl")][@xml:id="id4"][not(child::node())][following-sibling::delta[contains(@token,"soli")][@xml:lang="no-nb"][@xml:id="id5"][preceding-sibling::*[position() = 5]]//mu[@xml:lang="nb"][not(preceding-sibling::*)][following-sibling::nu[@att="attribute value"][@xml:id="id6"][preceding-sibling::*[position() = 1]]][position() = 1]]][position() = 1]]]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>iota</localname>
<nth>0</nth>
</result>
<tree>
<mu>
<iota desciption="attribute-value"/>
<lambda or="attribute-value" xml:id="id1">
<pi name="false" xml:id="id2"/>
<sigma name="another attribute value"/>
<mu/>
<zeta true="attribute-value" xml:lang="en-US" xml:id="id3"/>
<tau abort="_blank" xml:id="id4"/>
<delta token="solid 1px green" xml:lang="no-nb" xml:id="id5">
<mu xml:lang="nb"/>
<nu att="attribute value" xml:id="id6">
<green>This text must be green</green>
</nu>
</delta>
</lambda>
</mu>
</tree>
</test>
<test>
<xpath>//*[starts-with(concat(@attribute,"-"),"attribute-")][@xml:lang="nb"]/theta[@xml:lang="no"][@xml:id="id1"][not(preceding-sibling::*)][not(following-sibling::*)]//zeta[not(following-sibling::*)]/phi[@xml:lang="no"][@xml:id="id2"][not(following-sibling::*)]//pi[contains(concat(@attribute,"$"),"another attribute value$")][@xml:lang="en-US"][@xml:id="id3"][not(preceding-sibling::*)]//eta[starts-with(@desciption,"another attribu")][@xml:lang="no"][@xml:id="id4"][not(following-sibling::*)]</xpath>
<result>
<namespace/>
<localname>eta</localname>
<nth>0</nth>
</result>
<tree>
<any attribute="attribute" xml:lang="nb">
<theta xml:lang="no" xml:id="id1">
<zeta>
<phi xml:lang="no" xml:id="id2">
<pi attribute="another attribute value" xml:lang="en-US" xml:id="id3">
<eta desciption="another attribute value" xml:lang="no" xml:id="id4">
<green>This text must be green</green>
</eta>
</pi>
</phi>
</zeta>
</theta>
</any>
</tree>
</test>
<test>
<xpath>//omicron[starts-with(concat(@object,"-"),"100%-")][@xml:lang="en-GB"]//alpha[following-sibling::*[position()=1]][not(child::node())][following-sibling::omega[@content][@xml:id="id1"][preceding-sibling::*[position() = 1]]//upsilon[following-sibling::*[position()=2]][not(child::node())][following-sibling::epsilon[@class][not(child::node())][following-sibling::epsilon[@desciption][@xml:lang="no-nb"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]//iota[@name="attribute-value"][@xml:lang="en-US"][not(preceding-sibling::*)][following-sibling::delta[@xml:lang="no-nb"][@xml:id="id2"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/upsilon[contains(concat(@object,"$"),"nodeValue$")][not(preceding-sibling::*)][not(following-sibling::*)]/alpha[@xml:lang="no"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]]]]]</xpath>
<result>
<namespace/>
<localname>alpha</localname>
<nth>0</nth>
</result>
<tree>
<omicron object="100%" xml:lang="en-GB">
<alpha/>
<omega content="this.nodeValue" xml:id="id1">
<upsilon/>
<epsilon class="false"/>
<epsilon desciption="attribute value" xml:lang="no-nb">
<iota name="attribute-value" xml:lang="en-US"/>
<delta xml:lang="no-nb" xml:id="id2">
<upsilon object="this.nodeValue">
<alpha xml:lang="no">
<green>This text must be green</green>
</alpha>
</upsilon>
</delta>
</epsilon>
</omega>
</omicron>
</tree>
</test>
<test>
<xpath>//zeta[@xml:id="id1"]//kappa[@xml:id="id2"][following-sibling::alpha[@xml:id="id3"]/nu[contains(@content,"%")][@xml:lang="en-GB"][following-sibling::*[position()=3]][not(child::node())][following-sibling::alpha[@object][@xml:lang="en-US"][@xml:id="id4"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::theta[@xml:id="id5"][not(child::node())][following-sibling::eta[preceding-sibling::*[position() = 3]]//omicron[starts-with(concat(@desciption,"-"),"solid 1px green-")][@xml:lang="en-GB"][@xml:id="id6"]/epsilon[contains(@class,"ank")][@xml:id="id7"][not(preceding-sibling::*)][not(child::node())][following-sibling::rho[@xml:lang="nb"][following-sibling::kappa[@xml:lang="en-GB"][following-sibling::chi[starts-with(@att,"a")][@xml:id="id8"][following-sibling::*[position()=1]][following-sibling::tau[starts-with(concat(@data,"-"),"content-")][preceding-sibling::*[position() = 4]]/delta[contains(concat(@attr,"$"),"89$")][not(child::node())][following-sibling::rho[@xml:id="id9"][following-sibling::alpha[not(following-sibling::*)]//iota[not(following-sibling::*)]//eta/lambda[@xml:lang="en"][not(child::node())][following-sibling::epsilon[starts-with(@object,"t")][@xml:lang="no"][@xml:id="id10"][following-sibling::gamma[@or][@xml:lang="nb"][@xml:id="id11"][preceding-sibling::*[position() = 2]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]]][position() = 1]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>kappa</localname>
<nth>0</nth>
</result>
<tree>
<zeta xml:id="id1">
<kappa xml:id="id2"/>
<alpha xml:id="id3">
<nu content="100%" xml:lang="en-GB"/>
<alpha object="this-is-att-value" xml:lang="en-US" xml:id="id4"/>
<theta xml:id="id5"/>
<eta>
<omicron desciption="solid 1px green" xml:lang="en-GB" xml:id="id6">
<epsilon class="_blank" xml:id="id7"/>
<rho xml:lang="nb"/>
<kappa xml:lang="en-GB"/>
<chi att="another attribute value" xml:id="id8"/>
<tau data="content">
<delta attr="123456789"/>
<rho xml:id="id9"/>
<alpha>
<iota>
<eta>
<lambda xml:lang="en"/>
<epsilon object="true" xml:lang="no" xml:id="id10"/>
<gamma or="attribute-value" xml:lang="nb" xml:id="id11">
<green>This text must be green</green>
</gamma>
</eta>
</iota>
</alpha>
</tau>
</omicron>
</eta>
</alpha>
</zeta>
</tree>
</test>
<test>
<xpath>//omega[starts-with(concat(@desciption,"-"),"attribute-")][@xml:lang="en"][@xml:id="id1"]/upsilon[@xml:id="id2"][not(preceding-sibling::*)]//kappa[@abort="this.nodeValue"][@xml:id="id3"][not(preceding-sibling::*)]//chi[@xml:lang="no"][@xml:id="id4"][not(following-sibling::*)]//phi[@xml:id="id5"][not(following-sibling::*)]/omega[contains(concat(@false,"$"),"te$")][not(preceding-sibling::*)][not(following-sibling::*)]//sigma[@xml:lang="en"][@xml:id="id6"][not(following-sibling::*)]</xpath>
<result>
<namespace/>
<localname>sigma</localname>
<nth>0</nth>
</result>
<tree>
<omega desciption="attribute-value" xml:lang="en" xml:id="id1">
<upsilon xml:id="id2">
<kappa abort="this.nodeValue" xml:id="id3">
<chi xml:lang="no" xml:id="id4">
<phi xml:id="id5">
<omega false="attribute">
<sigma xml:lang="en" xml:id="id6">
<green>This text must be green</green>
</sigma>
</omega>
</phi>
</chi>
</kappa>
</upsilon>
</omega>
</tree>
</test>
<test>
<xpath>//mu[@xml:id="id1"]//chi[starts-with(concat(@true,"-"),"content-")][following-sibling::upsilon[contains(@abort,"6789")][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//delta[@xml:lang="en"][@xml:id="id2"][not(following-sibling::*)]//pi[@xml:lang="no-nb"][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@xml:id="id3"][preceding-sibling::*[position() = 1]]/gamma[not(preceding-sibling::*)][not(following-sibling::*)]]]</xpath>
<result>
<namespace/>
<localname>chi</localname>
<nth>0</nth>
</result>
<tree>
<mu xml:id="id1">
<chi true="content"/>
<upsilon abort="123456789">
<delta xml:lang="en" xml:id="id2">
<pi xml:lang="no-nb"/>
<eta xml:id="id3">
<gamma>
<green>This text must be green</green>
</gamma>
</eta>
</delta>
</upsilon>
</mu>
</tree>
</test>
<test>
<xpath>//psi[@xml:id="id1"]//theta[contains(concat(@number,"$"),"bute value$")][not(preceding-sibling::*)][not(following-sibling::*)]/gamma[@xml:id="id2"][not(preceding-sibling::*)]/theta[starts-with(concat(@abort,"-"),"solid 1px green-")][@xml:lang="en-US"][following-sibling::upsilon[starts-with(@number,"c")][@xml:lang="no-nb"][@xml:id="id3"]//zeta[starts-with(@attrib,"100")][@xml:lang="en-US"][not(child::node())][following-sibling::chi[@xml:lang="no-nb"][preceding-sibling::*[position() = 1]][following-sibling::eta[@xml:id="id4"]//theta[starts-with(concat(@name,"-"),"123456789-")][not(following-sibling::*)]/zeta[@xml:id="id5"]//rho[@xml:lang="no-nb"][@xml:id="id6"][not(child::node())][following-sibling::mu[@xml:lang="no"][@xml:id="id7"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::phi//iota[@xml:lang="no"][@xml:id="id8"]/zeta[@xml:id="id9"][following-sibling::delta[@desciption][@xml:lang="nb"][preceding-sibling::*[position() = 1]][following-sibling::theta[starts-with(concat(@insert,"-"),"_blank-")][@xml:lang="no"][@xml:id="id10"][preceding-sibling::*[position() = 2]]]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>theta</localname>
<nth>1</nth>
</result>
<tree>
<psi xml:id="id1">
<theta number="attribute value">
<gamma xml:id="id2">
<theta abort="solid 1px green" xml:lang="en-US"/>
<upsilon number="content" xml:lang="no-nb" xml:id="id3">
<zeta attrib="100%" xml:lang="en-US"/>
<chi xml:lang="no-nb"/>
<eta xml:id="id4">
<theta name="123456789">
<zeta xml:id="id5">
<rho xml:lang="no-nb" xml:id="id6"/>
<mu xml:lang="no" xml:id="id7"/>
<phi>
<iota xml:lang="no" xml:id="id8">
<zeta xml:id="id9"/>
<delta desciption="123456789" xml:lang="nb"/>
<theta insert="_blank" xml:lang="no" xml:id="id10">
<green>This text must be green</green>
</theta>
</iota>
</phi>
</zeta>
</theta>
</eta>
</upsilon>
</gamma>
</theta>
</psi>
</tree>
</test>
<test>
<xpath>//zeta[starts-with(concat(@att,"-"),"solid 1px green-")][@xml:id="id1"]//lambda[@attribute][@xml:id="id2"][not(following-sibling::*)]//omicron[contains(concat(@abort,"$"),"e$")][not(child::node())][following-sibling::zeta[@xml:lang="nb"][preceding-sibling::*[position() = 1]]//sigma[starts-with(concat(@token,"-"),"this.nodeValue-")][@xml:lang="en-US"][@xml:id="id3"][not(preceding-sibling::*)]/phi[@xml:lang="no"][@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)]/nu[@false="attribute value"][@xml:id="id5"][not(preceding-sibling::*)][following-sibling::eta[starts-with(@token,"123456789")][@xml:lang="no"][@xml:id="id6"][following-sibling::*[position()=1]][not(child::node())][following-sibling::alpha]]]</xpath>
<result>
<namespace/>
<localname>omicron</localname>
<nth>0</nth>
</result>
<tree>
<zeta att="solid 1px green" xml:id="id1">
<lambda attribute="another attribute value" xml:id="id2">
<omicron abort="attribute value"/>
<zeta xml:lang="nb">
<sigma token="this.nodeValue" xml:lang="en-US" xml:id="id3">
<phi xml:lang="no" xml:id="id4">
<nu false="attribute value" xml:id="id5"/>
<eta token="123456789" xml:lang="no" xml:id="id6"/>
<alpha>
<green>This text must be green</green>
</alpha>
</phi>
</sigma>
</zeta>
</lambda>
</zeta>
</tree>
</test>
<test>
<xpath>//delta//alpha[@xml:lang="no-nb"][not(preceding-sibling::*)]//tau[@object][not(preceding-sibling::*)][not(child::node())][following-sibling::beta[contains(concat(@and,"$"),"00%$")][@xml:lang="nb"]//rho[@xml:lang="en"][@xml:id="id1"][not(preceding-sibling::*)][following-sibling::eta[@xml:id="id2"]/rho[starts-with(@abort,"this-is-")][@xml:id="id3"][not(preceding-sibling::*)]/rho[not(preceding-sibling::*)][not(following-sibling::*)]//iota[@xml:lang="no"][not(following-sibling::*)]//gamma[not(child::node())][following-sibling::omega[@attribute][@xml:lang="no-nb"][@xml:id="id4"]/kappa[@attrib][@xml:lang="en-US"][not(preceding-sibling::*)][not(child::node())][following-sibling::omicron[@xml:lang="en"][@xml:id="id5"][not(child::node())][following-sibling::lambda[@xml:lang="en-US"][@xml:id="id6"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::pi[@xml:lang="en"][@xml:id="id7"]//sigma[starts-with(@att,"123")][@xml:id="id8"][not(preceding-sibling::*)][following-sibling::*[position()=5]][following-sibling::kappa[contains(@attr,"bute value")][@xml:lang="no-nb"][@xml:id="id9"][not(child::node())][following-sibling::alpha[@and="attribute value"][@xml:id="id10"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::lambda[preceding-sibling::*[position() = 3]][following-sibling::rho[@xml:lang="en-GB"][@xml:id="id11"][preceding-sibling::*[position() = 4]][not(child::node())][following-sibling::omicron[@xml:lang="no-nb"][@xml:id="id12"][not(following-sibling::*)][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]]]</xpath>
<result>
<namespace/>
<localname>tau</localname>
<nth>0</nth>
</result>
<tree>
<delta>
<alpha xml:lang="no-nb">
<tau object="another attribute value"/>
<beta and="100%" xml:lang="nb">
<rho xml:lang="en" xml:id="id1"/>
<eta xml:id="id2">
<rho abort="this-is-att-value" xml:id="id3">
<rho>
<iota xml:lang="no">
<gamma/>
<omega attribute="attribute" xml:lang="no-nb" xml:id="id4">
<kappa attrib="content" xml:lang="en-US"/>
<omicron xml:lang="en" xml:id="id5"/>
<lambda xml:lang="en-US" xml:id="id6"/>
<pi xml:lang="en" xml:id="id7">
<sigma att="123456789" xml:id="id8"/>
<kappa attr="another attribute value" xml:lang="no-nb" xml:id="id9"/>
<alpha and="attribute value" xml:id="id10"/>
<lambda/>
<rho xml:lang="en-GB" xml:id="id11"/>
<omicron xml:lang="no-nb" xml:id="id12">
<green>This text must be green</green>
</omicron>
</pi>
</omega>
</iota>
</rho>
</rho>
</eta>
</beta>
</alpha>
</delta>
</tree>
</test>
<test>
<xpath>//mu[@xml:lang="no"]/tau[contains(@data,"value")][@xml:lang="no"][not(child::node())][following-sibling::kappa[@att][not(following-sibling::*)]//delta[starts-with(@attrib,"100")][@xml:lang="en"][@xml:id="id1"]//omega[@xml:lang="en-GB"][@xml:id="id2"]/epsilon[@delete][following-sibling::sigma[@xml:id="id3"]/nu[starts-with(@token,"a")][not(preceding-sibling::*)]/rho[contains(concat(@delete,"$"),"00%$")][@xml:lang="no"][@xml:id="id4"]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>tau</localname>
<nth>0</nth>
</result>
<tree>
<mu xml:lang="no">
<tau data="attribute-value" xml:lang="no"/>
<kappa att="attribute">
<delta attrib="100%" xml:lang="en" xml:id="id1">
<omega xml:lang="en-GB" xml:id="id2">
<epsilon delete="content"/>
<sigma xml:id="id3">
<nu token="attribute value">
<rho delete="100%" xml:lang="no" xml:id="id4">
<green>This text must be green</green>
</rho>
</nu>
</sigma>
</omega>
</delta>
</kappa>
</mu>
</tree>
</test>
<test>
<xpath>//zeta[starts-with(concat(@object,"-"),"this.nodeValue-")][@xml:lang="nb"][@xml:id="id1"]//pi[@xml:lang="en-US"][@xml:id="id2"][not(preceding-sibling::*)]/eta[@xml:lang="nb"][not(preceding-sibling::*)][not(following-sibling::*)][not(following-sibling::eta)]/rho[@xml:id="id3"][not(preceding-sibling::*)][following-sibling::*[position()=1]][following-sibling::pi[@desciption]/epsilon[@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)]/delta[@xml:lang="no-nb"][@xml:id="id5"][not(preceding-sibling::*)][not(child::node())][following-sibling::epsilon[@att="true"][following-sibling::psi[starts-with(@abort,"attribute")][@xml:id="id6"][position() = 1]]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>rho</localname>
<nth>0</nth>
</result>
<tree>
<zeta object="this.nodeValue" xml:lang="nb" xml:id="id1">
<pi xml:lang="en-US" xml:id="id2">
<eta xml:lang="nb">
<rho xml:id="id3"/>
<pi desciption="attribute value">
<epsilon xml:id="id4">
<delta xml:lang="no-nb" xml:id="id5"/>
<epsilon att="true"/>
<psi abort="attribute-value" xml:id="id6">
<green>This text must be green</green>
</psi>
</epsilon>
</pi>
</eta>
</pi>
</zeta>
</tree>
</test>
<test>
<xpath>//upsilon[starts-with(concat(@src,"-"),"this-")][@xml:id="id1"]/chi[@attrib][@xml:lang="nb"][following-sibling::eta[@xml:id="id2"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/phi[@xml:lang="no-nb"][not(following-sibling::*)]//kappa[@and][not(preceding-sibling::*)]//mu[@string][@xml:id="id3"][not(following-sibling::*)]//tau[@name][@xml:lang="en"][@xml:id="id4"][following-sibling::upsilon[not(following-sibling::*)]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>chi</localname>
<nth>0</nth>
</result>
<tree>
<upsilon src="this-is-att-value" xml:id="id1">
<chi attrib="attribute-value" xml:lang="nb"/>
<eta xml:id="id2">
<phi xml:lang="no-nb">
<kappa and="true">
<mu string="100%" xml:id="id3">
<tau name="attribute" xml:lang="en" xml:id="id4"/>
<upsilon>
<green>This text must be green</green>
</upsilon>
</mu>
</kappa>
</phi>
</eta>
</upsilon>
</tree>
</test>
<test>
<xpath>//*[starts-with(concat(@insert,"-"),"_blank-")]/alpha[@xml:lang="no-nb"][@xml:id="id1"][not(preceding-sibling::*)][not(child::node())][following-sibling::sigma[contains(concat(@token,"$"),"e-value$")][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::iota[contains(@insert,"1")][not(child::node())][following-sibling::sigma[contains(@and,"_")][following-sibling::beta[@xml:lang="en"][preceding-sibling::*[position() = 4]][not(child::node())][following-sibling::mu[not(child::node())][following-sibling::psi[following-sibling::kappa[not(following-sibling::*)]//beta//xi[@xml:lang="en-GB"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::kappa[@content][@xml:id="id3"][not(following-sibling::*)]/xi[@xml:lang="nb"][not(preceding-sibling::*)]//upsilon[contains(@content,"ri")][@xml:lang="nb"][not(following-sibling::*)]//psi[contains(@and,"te")][@xml:id="id4"][not(preceding-sibling::*)][following-sibling::iota[@attribute][preceding-sibling::*[position() = 1]][following-sibling::*[position()=2]][not(child::node())][following-sibling::lambda[starts-with(concat(@and,"-"),"123456789-")][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::theta//beta[not(preceding-sibling::*)]//epsilon[@xml:lang="en"][@xml:id="id5"][not(preceding-sibling::*)]//zeta[starts-with(@insert,"content")][not(preceding-sibling::*)][not(following-sibling::*)]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]][position() = 1]]</xpath>
<result>
<namespace/>
<localname>alpha</localname>
<nth>0</nth>
</result>
<tree>
<any insert="_blank">
<alpha xml:lang="no-nb" xml:id="id1"/>
<sigma token="attribute-value"/>
<iota insert="100%"/>
<sigma and="_blank"/>
<beta xml:lang="en"/>
<mu/>
<psi/>
<kappa>
<beta>
<xi xml:lang="en-GB" xml:id="id2"/>
<kappa content="false" xml:id="id3">
<xi xml:lang="nb">
<upsilon content="attribute" xml:lang="nb">
<psi and="attribute" xml:id="id4"/>
<iota attribute="solid 1px green"/>
<lambda and="123456789"/>
<theta>
<beta>
<epsilon xml:lang="en" xml:id="id5">
<zeta insert="content">
<green>This text must be green</green>
</zeta>
</epsilon>
</beta>
</theta>
</upsilon>
</xi>
</kappa>
</beta>
</kappa>
</any>
</tree>
</test>
<test>
<xpath>//chi[@xml:lang="en-GB"][@xml:id="id1"]/tau//phi[@title][@xml:id="id2"]/sigma[@xml:lang="no-nb"]//theta[@xml:id="id3"][not(preceding-sibling::*)]/tau[contains(concat(@title,"$"),"nother attribute value$")][@xml:lang="en"][not(following-sibling::*)]/phi[@attribute][following-sibling::*[position()=2]][not(child::node())][following-sibling::eta[@xml:lang="no"][preceding-sibling::*[position() = 1]][following-sibling::mu[@xml:lang="no"][@xml:id="id4"]/chi[@xml:lang="en-GB"][@xml:id="id5"][not(child::node())][following-sibling::tau[starts-with(@att,"false")][@xml:id="id6"][not(child::node())][following-sibling::eta[preceding-sibling::*[position() = 2]]/gamma[@attr][@xml:lang="no"][@xml:id="id7"][not(preceding-sibling::*)][following-sibling::upsilon[@xml:lang="en"][preceding-sibling::*[position() = 1]]/tau[contains(@and,"r")][not(preceding-sibling::*)][not(following-sibling::*)]//chi[@token="false"][@xml:lang="no"][not(following-sibling::*)]]]][position() = 1]]]</xpath>
<result>
<namespace/>
<localname>phi</localname>
<nth>1</nth>
</result>
<tree>
<chi xml:lang="en-GB" xml:id="id1">
<tau>
<phi title="another attribute value" xml:id="id2">
<sigma xml:lang="no-nb">
<theta xml:id="id3">
<tau title="another attribute value" xml:lang="en">
<phi attribute="this.nodeValue"/>
<eta xml:lang="no"/>
<mu xml:lang="no" xml:id="id4">
<chi xml:lang="en-GB" xml:id="id5"/>
<tau att="false" xml:id="id6"/>
<eta>
<gamma attr="true" xml:lang="no" xml:id="id7"/>
<upsilon xml:lang="en">
<tau and="true">
<chi token="false" xml:lang="no">
<green>This text must be green</green>
</chi>
</tau>
</upsilon>
</eta>
</mu>
</tau>
</theta>
</sigma>
</phi>
</tau>
</chi>
</tree>
</test>
<test>
<xpath>//sigma[@title][@xml:id="id1"]/zeta[@xml:lang="en"][not(preceding-sibling::*)][not(following-sibling::*)]//nu[@xml:id="id2"][following-sibling::psi[@att][@x |