blob: e40bb5b6d357f671a8bf933446bfdcafb553c9a7 [file] [log] [blame]
<!-- 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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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][@xml:lang="nb"][@xml:id="id3"]//alpha[@xml:lang="en-US"][@xml:id="id4"][not(preceding-sibling::*)][not(child::node())][following-sibling::lambda[starts-with(@title,"123456")][@xml:lang="en-US"][preceding-sibling::*[position() = 1]][following-sibling::*[@xml:id="id5"][following-sibling::*[position()=1]][not(preceding-sibling::any)][following-sibling::theta[preceding-sibling::*[position() = 3]][not(following-sibling::*)]//nu[contains(@desciption,"a")][@xml:lang="en-US"][@xml:id="id6"][not(preceding-sibling::*)][not(child::node())][following-sibling::omega[@object][preceding-sibling::*[position() = 1]]//iota[@xml:id="id7"][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@xml:id="id8"]//omega[@delete][not(preceding-sibling::*)][not(child::node())][following-sibling::xi[following-sibling::*[position()=1]][following-sibling::omega[@number="solid 1px green"][@xml:lang="nb"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]//rho[@string][@xml:lang="nb"][@xml:id="id9"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]][position() = 1]][position() = 1]][position() = 1]]]]][position() = 1]]</xpath>
<tree>
<sigma title="another attribute value" xml:id="id1">
<zeta xml:lang="en">
<nu xml:id="id2"/>
<psi att="this.nodeValue" xml:lang="nb" xml:id="id3">
<alpha xml:lang="en-US" xml:id="id4"/>
<lambda title="123456789" xml:lang="en-US"/>
<any xml:id="id5"/>
<theta>
<nu desciption="false" xml:lang="en-US" xml:id="id6"/>
<omega object="100%">
<iota xml:id="id7"/>
<eta xml:id="id8">
<omega delete="true"/>
<xi/>
<omega number="solid 1px green" xml:lang="nb">
<rho string="attribute-value" xml:lang="nb" xml:id="id9">
<green>This text must be green</green>
</rho>
</omega>
</eta>
</omega>
</theta>
</psi>
</zeta>
</sigma>
</tree>
</test>
<test>
<xpath>//*[@xml:lang="no-nb"][@xml:id="id1"]//theta[starts-with(@content,"fal")][@xml:id="id2"][not(preceding-sibling::*)][not(child::node())][following-sibling::beta[starts-with(@insert,"100")][@xml:lang="nb"][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//theta[@xml:lang="no-nb"][not(preceding-sibling::*)][not(child::node())][following-sibling::theta[@xml:lang="en-US"][@xml:id="id4"][preceding-sibling::*[position() = 1]][following-sibling::epsilon[@desciption="100%"][@xml:lang="en"][@xml:id="id5"]/upsilon//xi[contains(@abort,"nt")][@xml:lang="no-nb"][@xml:id="id6"][not(preceding-sibling::*)]//beta[@xml:lang="en-GB"][@xml:id="id7"][not(preceding-sibling::*)][following-sibling::*[position()=1]][following-sibling::gamma[preceding-sibling::*[position() = 1]]//kappa[@xml:lang="en-US"][following-sibling::gamma[@xml:lang="no"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][not(child::node())][following-sibling::delta[starts-with(@abort,"solid 1px g")]//gamma[@xml:lang="no"][not(preceding-sibling::*)][not(following-sibling::*)]/delta[@object="solid 1px green"][@xml:id="id8"][not(preceding-sibling::*)][not(child::node())][following-sibling::pi[@name="_blank"][@xml:lang="no-nb"]//nu[@xml:lang="en-GB"][@xml:id="id9"][not(preceding-sibling::*)]//sigma[@desciption][@xml:lang="nb"][following-sibling::beta[@xml:lang="en"][@xml:id="id10"][not(following-sibling::*)]/pi[contains(concat(@delete,"$"),"ue$")][not(preceding-sibling::*)][following-sibling::rho[preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][not(child::node())][following-sibling::mu[@xml:lang="en"][preceding-sibling::*[position() = 2]][position() = 1]]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]]][position() = 1]]</xpath>
<tree>
<any xml:lang="no-nb" xml:id="id1">
<theta content="false" xml:id="id2"/>
<beta insert="100%" xml:lang="nb" xml:id="id3">
<theta xml:lang="no-nb"/>
<theta xml:lang="en-US" xml:id="id4"/>
<epsilon desciption="100%" xml:lang="en" xml:id="id5">
<upsilon>
<xi abort="content" xml:lang="no-nb" xml:id="id6">
<beta xml:lang="en-GB" xml:id="id7"/>
<gamma>
<kappa xml:lang="en-US"/>
<gamma xml:lang="no"/>
<delta abort="solid 1px green">
<gamma xml:lang="no">
<delta object="solid 1px green" xml:id="id8"/>
<pi name="_blank" xml:lang="no-nb">
<nu xml:lang="en-GB" xml:id="id9">
<sigma desciption="_blank" xml:lang="nb"/>
<beta xml:lang="en" xml:id="id10">
<pi delete="true"/>
<rho/>
<mu xml:lang="en">
<green>This text must be green</green>
</mu>
</beta>
</nu>
</pi>
</gamma>
</delta>
</gamma>
</xi>
</upsilon>
</epsilon>
</beta>
</any>
</tree>
</test>
<test>
<xpath>//rho[@content][@xml:lang="no-nb"][@xml:id="id1"]//alpha[@title="content"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::*[position()=5]][not(child::node())][following-sibling::zeta[@xml:lang="en-GB"][preceding-sibling::*[position() = 1]][following-sibling::omega[@xml:lang="en"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::psi[@xml:lang="no-nb"][preceding-sibling::*[position() = 3]][following-sibling::theta[@abort][@xml:lang="no"][preceding-sibling::*[position() = 4]][following-sibling::*[position()=1]][not(following-sibling::theta)][not(child::node())][following-sibling::pi[@attr="true"][@xml:lang="nb"]//eta[contains(concat(@attr,"$"),"false$")][@xml:lang="en-US"]//omega[@insert="solid 1px green"][@xml:lang="en-US"][@xml:id="id3"][not(preceding-sibling::*)][not(following-sibling::*)]//gamma[@xml:lang="en"]]][position() = 1]]]]</xpath>
<tree>
<rho content="false" xml:lang="no-nb" xml:id="id1">
<alpha title="content" xml:id="id2"/>
<zeta xml:lang="en-GB"/>
<omega xml:lang="en"/>
<psi xml:lang="no-nb"/>
<theta abort="attribute" xml:lang="no"/>
<pi attr="true" xml:lang="nb">
<eta attr="false" xml:lang="en-US">
<omega insert="solid 1px green" xml:lang="en-US" xml:id="id3">
<gamma xml:lang="en">
<green>This text must be green</green>
</gamma>
</omega>
</eta>
</pi>
</rho>
</tree>
</test>
<test>
<xpath>//zeta[@xml:lang="nb"]/psi[contains(@object,"te")][not(preceding-sibling::*)][not(child::node())][following-sibling::kappa[@xml:id="id1"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::chi[contains(@number,"d 1p")][@xml:lang="en"][@xml:id="id2"][following-sibling::*[position()=1]][not(preceding-sibling::chi)][not(preceding-sibling::chi or following-sibling::chi)][following-sibling::tau[@delete][@xml:lang="en-US"][not(following-sibling::*)]//phi[@token][@xml:id="id3"][not(preceding-sibling::*)]//xi[starts-with(concat(@att,"-"),"123456789-")][@xml:id="id4"][not(preceding-sibling::*)]//iota[@class="attribute-value"][not(preceding-sibling::*)]//rho[@xml:lang="en-GB"][not(preceding-sibling::*)][not(child::node())][following-sibling::chi[contains(@insert,"px green")][@xml:id="id5"][following-sibling::*[position()=3]][following-sibling::lambda[@token][@xml:lang="en-US"][not(child::node())][following-sibling::gamma[not(child::node())][following-sibling::mu[@xml:id="id6"]//omicron[contains(concat(@desciption,"$"),"his.nodeValue$")][@xml:id="id7"][not(preceding-sibling::*)]/sigma[starts-with(@attr,"at")][@xml:lang="en-US"][@xml:id="id8"][following-sibling::tau[contains(@true,"ute value")][@xml:lang="no-nb"][not(following-sibling::*)][position() = 1]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]]]</xpath>
<tree>
<zeta xml:lang="nb">
<psi object="attribute"/>
<kappa xml:id="id1"/>
<chi number="solid 1px green" xml:lang="en" xml:id="id2"/>
<tau delete="attribute-value" xml:lang="en-US">
<phi token="attribute" xml:id="id3">
<xi att="123456789" xml:id="id4">
<iota class="attribute-value">
<rho xml:lang="en-GB"/>
<chi insert="solid 1px green" xml:id="id5"/>
<lambda token="100%" xml:lang="en-US"/>
<gamma/>
<mu xml:id="id6">
<omicron desciption="this.nodeValue" xml:id="id7">
<sigma attr="attribute" xml:lang="en-US" xml:id="id8"/>
<tau true="attribute value" xml:lang="no-nb">
<green>This text must be green</green>
</tau>
</omicron>
</mu>
</iota>
</xi>
</phi>
</tau>
</zeta>
</tree>
</test>
<test>
<xpath>//theta[@false][@xml:lang="no"][@xml:id="id1"]//zeta[@name][@xml:id="id2"][following-sibling::*[position()=2]][following-sibling::sigma[@xml:lang="en"][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::pi[@src][@xml:lang="en"][@xml:id="id4"]//theta[contains(concat(@src,"$"),"%$")][@xml:id="id5"][following-sibling::omicron[contains(@or,"ribute")][@xml:lang="en-US"][@xml:id="id6"][following-sibling::*[position()=1]][following-sibling::xi[@true="another attribute value"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]//*[@xml:id="id7"][not(preceding-sibling::*)][not(following-sibling::*)]/sigma[@or][@xml:id="id8"][not(preceding-sibling::*)]//kappa[not(preceding-sibling::*)][following-sibling::phi[@xml:id="id9"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//lambda[starts-with(@delete,"this.")][@xml:id="id10"][following-sibling::omega[contains(@string,"on")][@xml:lang="en"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]][position() = 1]]][position() = 1]][position() = 1]]]</xpath>
<tree>
<theta false="attribute-value" xml:lang="no" xml:id="id1">
<zeta name="solid 1px green" xml:id="id2"/>
<sigma xml:lang="en" xml:id="id3"/>
<pi src="false" xml:lang="en" xml:id="id4">
<theta src="100%" xml:id="id5"/>
<omicron or="another attribute value" xml:lang="en-US" xml:id="id6"/>
<xi true="another attribute value">
<any xml:id="id7">
<sigma or="_blank" xml:id="id8">
<kappa/>
<phi xml:id="id9">
<lambda delete="this.nodeValue" xml:id="id10"/>
<omega string="content" xml:lang="en">
<green>This text must be green</green>
</omega>
</phi>
</sigma>
</any>
</xi>
</pi>
</theta>
</tree>
</test>
<test>
<xpath>//zeta[@xml:id="id1"]//mu[@xml:lang="no-nb"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::alpha[@true][@xml:id="id3"][preceding-sibling::*[position() = 1]]//epsilon[contains(concat(@content,"$"),"e$")][not(preceding-sibling::*)][not(following-sibling::*)]/kappa[starts-with(@data,"100")][not(preceding-sibling::*)]//pi[@xml:id="id4"][not(preceding-sibling::*)][not(child::node())][following-sibling::alpha[preceding-sibling::*[position() = 1]][not(following-sibling::*)]//lambda[starts-with(concat(@attrib,"-"),"content-")][@xml:lang="no"][@xml:id="id5"][not(following-sibling::*)]/upsilon[@xml:lang="en-US"][not(preceding-sibling::*)][not(child::node())][following-sibling::gamma[@xml:lang="no-nb"][@xml:id="id6"][not(following-sibling::*)]//iota[not(preceding-sibling::*)][not(following-sibling::*)]/zeta[not(preceding-sibling::*)][position() = 1]][position() = 1]]]</xpath>
<tree>
<zeta xml:id="id1">
<mu xml:lang="no-nb" xml:id="id2"/>
<alpha true="false" xml:id="id3">
<epsilon content="false">
<kappa data="100%">
<pi xml:id="id4"/>
<alpha>
<lambda attrib="content" xml:lang="no" xml:id="id5">
<upsilon xml:lang="en-US"/>
<gamma xml:lang="no-nb" xml:id="id6">
<iota>
<zeta>
<green>This text must be green</green>
</zeta>
</iota>
</gamma>
</lambda>
</alpha>
</kappa>
</epsilon>
</alpha>
</zeta>
</tree>
</test>
<test>
<xpath>//tau[@abort][@xml:id="id1"]/rho[contains(concat(@true,"$"),"e$")][not(following-sibling::*)]//eta[not(preceding-sibling::*)][not(child::node())][following-sibling::alpha[@xml:lang="no"]//tau[@xml:id="id2"]//iota[@xml:lang="no"][@xml:id="id3"][following-sibling::omega[@string][@xml:lang="no-nb"][following-sibling::theta[starts-with(@attr,"cont")][@xml:id="id4"][preceding-sibling::*[position() = 2]]/sigma[starts-with(@name,"this.nodeValue")][@xml:lang="nb"][@xml:id="id5"][not(following-sibling::*)]//rho[starts-with(@attrib,"cont")][@xml:lang="nb"][@xml:id="id6"][not(child::node())][following-sibling::pi[contains(concat(@token,"$"),"rue$")][@xml:lang="en"][@xml:id="id7"][preceding-sibling::*[position() = 1]][following-sibling::xi[@xml:lang="en"][preceding-sibling::*[position() = 2]][following-sibling::omega[@xml:id="id8"][preceding-sibling::*[position() = 3]][not(following-sibling::*)]/*[@content][@xml:lang="no"][@xml:id="id9"][not(preceding-sibling::*)][following-sibling::chi[@class][@xml:lang="no"][@xml:id="id10"]/alpha[@xml:lang="nb"][@xml:id="id11"][following-sibling::*[position()=4]][not(child::node())][following-sibling::upsilon[starts-with(concat(@name,"-"),"this-")][@xml:id="id12"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::rho[@delete][@xml:id="id13"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::xi[contains(concat(@true,"$"),"ank$")][not(child::node())][following-sibling::alpha[@xml:lang="en"][@xml:id="id14"][preceding-sibling::*[position() = 4]][not(following-sibling::*)]]][position() = 1]]][position() = 1]][position() = 1]]][position() = 1]]][position() = 1]]]</xpath>
<tree>
<tau abort="solid 1px green" xml:id="id1">
<rho true="this-is-att-value">
<eta/>
<alpha xml:lang="no">
<tau xml:id="id2">
<iota xml:lang="no" xml:id="id3"/>
<omega string="another attribute value" xml:lang="no-nb"/>
<theta attr="content" xml:id="id4">
<sigma name="this.nodeValue" xml:lang="nb" xml:id="id5">
<rho attrib="content" xml:lang="nb" xml:id="id6"/>
<pi token="true" xml:lang="en" xml:id="id7"/>
<xi xml:lang="en"/>
<omega xml:id="id8">
<any content="solid 1px green" xml:lang="no" xml:id="id9"/>
<chi class="attribute value" xml:lang="no" xml:id="id10">
<alpha xml:lang="nb" xml:id="id11"/>
<upsilon name="this-is-att-value" xml:id="id12"/>
<rho delete="100%" xml:id="id13"/>
<xi true="_blank"/>
<alpha xml:lang="en" xml:id="id14">
<green>This text must be green</green>
</alpha>
</chi>
</omega>
</sigma>
</theta>
</tau>
</alpha>
</rho>
</tau>
</tree>
</test>
<test>
<xpath>//kappa[@string="another attribute value"]/alpha[@xml:lang="en"][not(preceding-sibling::*)][following-sibling::theta[@xml:lang="en-US"][@xml:id="id1"][not(following-sibling::*)]/eta[@xml:lang="en-US"][following-sibling::*[@content][@xml:lang="no-nb"][@xml:id="id2"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::beta[@xml:lang="en-GB"][@xml:id="id3"][preceding-sibling::*[position() = 2]]/gamma[starts-with(@insert,"attr")][@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)]][position() = 1]][position() = 1]]</xpath>
<tree>
<kappa string="another attribute value">
<alpha xml:lang="en"/>
<theta xml:lang="en-US" xml:id="id1">
<eta xml:lang="en-US"/>
<any content="true" xml:lang="no-nb" xml:id="id2"/>
<beta xml:lang="en-GB" xml:id="id3">
<gamma insert="attribute" xml:id="id4">
<green>This text must be green</green>
</gamma>
</beta>
</theta>
</kappa>
</tree>
</test>
<test>
<xpath>//*//alpha//beta[@xml:lang="en"][not(preceding-sibling::*)][following-sibling::mu[contains(@false,"value")][@xml:lang="no-nb"][@xml:id="id1"][following-sibling::*[position()=3]][following-sibling::beta[@xml:lang="no-nb"][not(child::node())][following-sibling::iota[contains(@or,"e")][@xml:lang="no"][@xml:id="id2"][preceding-sibling::*[position() = 3]][following-sibling::xi[preceding-sibling::*[position() = 4]][not(following-sibling::*)]//delta[@xml:lang="no"]//upsilon[contains(concat(@token,"$"),"alue$")][@xml:id="id3"][not(preceding-sibling::*)][following-sibling::omega[@false][@xml:id="id4"][preceding-sibling::*[position() = 1]]/omega[starts-with(concat(@desciption,"-"),"_blank-")][@xml:id="id5"][not(following-sibling::*)]/sigma[@xml:id="id6"][not(preceding-sibling::*)]//lambda[following-sibling::theta[starts-with(@token,"_")][preceding-sibling::*[position() = 1]]//eta/tau[@false]//epsilon[contains(concat(@true,"$"),"ue$")][@xml:lang="nb"]]]][position() = 1]]]]</xpath>
<tree>
<any>
<alpha>
<beta xml:lang="en"/>
<mu false="attribute value" xml:lang="no-nb" xml:id="id1"/>
<beta xml:lang="no-nb"/>
<iota or="false" xml:lang="no" xml:id="id2"/>
<xi>
<delta xml:lang="no">
<upsilon token="attribute-value" xml:id="id3"/>
<omega false="_blank" xml:id="id4">
<omega desciption="_blank" xml:id="id5">
<sigma xml:id="id6">
<lambda/>
<theta token="_blank">
<eta>
<tau false="attribute">
<epsilon true="true" xml:lang="nb">
<green>This text must be green</green>
</epsilon>
</tau>
</eta>
</theta>
</sigma>
</omega>
</omega>
</delta>
</xi>
</alpha>
</any>
</tree>
</test>
<test>
<xpath>//phi[@abort]//mu[@xml:lang="no-nb"][@xml:id="id1"]/xi[starts-with(@name,"att")][@xml:lang="no"][@xml:id="id2"]//beta[contains(@number,"l")][@xml:lang="en"][not(preceding-sibling::*)][not(following-sibling::*)]//phi[@string][@xml:id="id3"][not(following-sibling::*)]/pi[contains(concat(@false,"$"),"100%$")][@xml:lang="en-GB"]/omicron[@xml:lang="en"][@xml:id="id4"][following-sibling::*[position()=1]][not(child::node())][following-sibling::zeta[contains(concat(@attribute,"$"),"e$")][@xml:id="id5"][not(following-sibling::*)]//chi[@xml:lang="en"][not(preceding-sibling::*)][following-sibling::rho[@false="another attribute value"][not(following-sibling::*)]/beta[@xml:lang="no"][following-sibling::lambda[contains(concat(@name,"$"),"deValue$")][@xml:lang="en"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/pi[@title="this-is-att-value"][@xml:id="id6"][not(preceding-sibling::*)]/kappa[@false="false"][@xml:id="id7"][not(following-sibling::*)][position() = 1]][position() = 1]]]</xpath>
<tree>
<phi abort="this-is-att-value">
<mu xml:lang="no-nb" xml:id="id1">
<xi name="attribute-value" xml:lang="no" xml:id="id2">
<beta number="false" xml:lang="en">
<phi string="100%" xml:id="id3">
<pi false="100%" xml:lang="en-GB">
<omicron xml:lang="en" xml:id="id4"/>
<zeta attribute="false" xml:id="id5">
<chi xml:lang="en"/>
<rho false="another attribute value">
<beta xml:lang="no"/>
<lambda name="this.nodeValue" xml:lang="en">
<pi title="this-is-att-value" xml:id="id6">
<kappa false="false" xml:id="id7">
<green>This text must be green</green>
</kappa>
</pi>
</lambda>
</rho>
</zeta>
</pi>
</phi>
</beta>
</xi>
</mu>
</phi>
</tree>
</test>
<test>
<xpath>//epsilon[@xml:id="id1"]//lambda[contains(@data,"alu")][@xml:lang="no-nb"][not(preceding-sibling::*)]//lambda[@xml:lang="nb"][not(child::node())][following-sibling::upsilon[@xml:lang="en-US"][@xml:id="id2"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/nu[contains(concat(@abort,"$"),"t-value$")][not(following-sibling::*)]//alpha[@xml:lang="en-US"][@xml:id="id3"][not(preceding-sibling::*)]//kappa[contains(concat(@string,"$"),"alue$")][@xml:lang="en-GB"][@xml:id="id4"]//lambda[contains(concat(@insert,"$")," value$")][not(preceding-sibling::*)][following-sibling::zeta[not(child::node())][following-sibling::psi[@xml:lang="nb"][@xml:id="id5"][not(child::node())][following-sibling::tau[@title="another attribute value"][@xml:lang="en-US"][preceding-sibling::*[position() = 3]][following-sibling::epsilon[not(following-sibling::*)]//gamma[contains(concat(@data,"$"),"23456789$")][@xml:id="id6"][not(following-sibling::*)]/mu[starts-with(@data,"solid 1px g")][not(preceding-sibling::*)][not(child::node())][following-sibling::omicron[@attr][@xml:lang="en-GB"][@xml:id="id7"][not(child::node())][following-sibling::lambda[@number][@xml:lang="nb"]//mu[contains(concat(@number,"$"),"t-value$")][@xml:lang="no"][not(child::node())][following-sibling::mu[@xml:id="id8"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//xi[@data="attribute"][@xml:lang="no"][not(preceding-sibling::*)]/pi[not(following-sibling::*)]//lambda[starts-with(concat(@false,"-"),"this-")][@xml:lang="en"][@xml:id="id9"]][position() = 1]]][position() = 1]]][position() = 1]][position() = 1]]]</xpath>
<tree>
<epsilon xml:id="id1">
<lambda data="attribute-value" xml:lang="no-nb">
<lambda xml:lang="nb"/>
<upsilon xml:lang="en-US" xml:id="id2">
<nu abort="this-is-att-value">
<alpha xml:lang="en-US" xml:id="id3">
<kappa string="attribute-value" xml:lang="en-GB" xml:id="id4">
<lambda insert="attribute value"/>
<zeta/>
<psi xml:lang="nb" xml:id="id5"/>
<tau title="another attribute value" xml:lang="en-US"/>
<epsilon>
<gamma data="123456789" xml:id="id6">
<mu data="solid 1px green"/>
<omicron attr="_blank" xml:lang="en-GB" xml:id="id7"/>
<lambda number="attribute" xml:lang="nb">
<mu number="this-is-att-value" xml:lang="no"/>
<mu xml:id="id8">
<xi data="attribute" xml:lang="no">
<pi>
<lambda false="this-is-att-value" xml:lang="en" xml:id="id9">
<green>This text must be green</green>
</lambda>
</pi>
</xi>
</mu>
</lambda>
</gamma>
</epsilon>
</kappa>
</alpha>
</nu>
</upsilon>
</lambda>
</epsilon>
</tree>
</test>
<test>
<xpath>//theta[@src]//*[contains(@desciption,"alue")][@xml:id="id1"][not(preceding-sibling::*)][not(following-sibling::*)]/phi[@xml:lang="en-US"][following-sibling::gamma[@string][@xml:lang="en-GB"][@xml:id="id2"][following-sibling::psi[starts-with(concat(@delete,"-"),"attribute-")][following-sibling::nu[@or][@xml:lang="no-nb"][@xml:id="id3"][following-sibling::iota[@number="false"][@xml:lang="no"][@xml:id="id4"]//eta[@xml:id="id5"][not(preceding-sibling::*)][following-sibling::*[position()=3]][following-sibling::rho[@xml:lang="no"][@xml:id="id6"][preceding-sibling::*[position() = 1]][not(following-sibling::rho)][following-sibling::omega[@xml:id="id7"][not(preceding-sibling::omega)][following-sibling::*[not(following-sibling::*)]//rho[@xml:lang="en-US"][@xml:id="id8"][following-sibling::xi[@xml:lang="no"][preceding-sibling::*[position() = 1]]/omicron[not(preceding-sibling::*)][not(following-sibling::*)]//tau[@xml:id="id9"]//omega[@xml:lang="no-nb"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]]][position() = 1]][position() = 1]]]]]]</xpath>
<tree>
<theta src="attribute">
<any desciption="this.nodeValue" xml:id="id1">
<phi xml:lang="en-US"/>
<gamma string="attribute value" xml:lang="en-GB" xml:id="id2"/>
<psi delete="attribute-value"/>
<nu or="100%" xml:lang="no-nb" xml:id="id3"/>
<iota number="false" xml:lang="no" xml:id="id4">
<eta xml:id="id5"/>
<rho xml:lang="no" xml:id="id6"/>
<omega xml:id="id7"/>
<any>
<rho xml:lang="en-US" xml:id="id8"/>
<xi xml:lang="no">
<omicron>
<tau xml:id="id9">
<omega xml:lang="no-nb">
<green>This text must be green</green>
</omega>
</tau>
</omicron>
</xi>
</any>
</iota>
</any>
</theta>
</tree>
</test>
<test>
<xpath>//chi[@number]/lambda[not(following-sibling::*)]/rho[@xml:lang="no"][not(following-sibling::*)]/mu[@xml:id="id1"][not(following-sibling::*)]/lambda[@xml:id="id2"][not(preceding-sibling::*)]//epsilon[@xml:id="id3"][not(preceding-sibling::*)][following-sibling::*[@xml:id="id4"][preceding-sibling::*[position() = 1]]/lambda[starts-with(@abort,"th")][@xml:lang="en-GB"][@xml:id="id5"][not(preceding-sibling::*)][not(following-sibling::*)]//epsilon[contains(@false,"e v")][@xml:id="id6"][following-sibling::alpha[following-sibling::*[position()=1]][not(child::node())][following-sibling::beta[contains(@delete,"te value")][@xml:lang="no-nb"][@xml:id="id7"][not(following-sibling::*)]/xi[@xml:lang="no"][not(preceding-sibling::*)]/epsilon[contains(concat(@string,"$"),"ontent$")][@xml:lang="en"][@xml:id="id8"][not(preceding-sibling::*)][following-sibling::delta[@token][@xml:lang="nb"][not(following-sibling::*)]//zeta[contains(@string,"alue")][@xml:lang="en"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<tree>
<chi number="another attribute value">
<lambda>
<rho xml:lang="no">
<mu xml:id="id1">
<lambda xml:id="id2">
<epsilon xml:id="id3"/>
<any xml:id="id4">
<lambda abort="this.nodeValue" xml:lang="en-GB" xml:id="id5">
<epsilon false="attribute value" xml:id="id6"/>
<alpha/>
<beta delete="another attribute value" xml:lang="no-nb" xml:id="id7">
<xi xml:lang="no">
<epsilon string="content" xml:lang="en" xml:id="id8"/>
<delta token="solid 1px green" xml:lang="nb">
<zeta string="attribute value" xml:lang="en">
<green>This text must be green</green>
</zeta>
</delta>
</xi>
</beta>
</lambda>
</any>
</lambda>
</mu>
</rho>
</lambda>
</chi>
</tree>
</test>
<test>
<xpath>//nu[contains(@abort,"234567")]/delta[contains(concat(@token,"$"),"0%$")][@xml:id="id1"][not(preceding-sibling::*)][not(following-sibling::*)]//zeta[not(following-sibling::*)]//mu[@xml:lang="no"][following-sibling::*[position()=1]][following-sibling::mu[@abort][@xml:lang="nb"][@xml:id="id2"][not(following-sibling::*)]/omega[starts-with(@att,"12")][@xml:lang="en"][@xml:id="id3"][following-sibling::*[position()=1]][not(child::node())][following-sibling::sigma[starts-with(concat(@attribute,"-"),"this.nodeValue-")][@xml:id="id4"][not(following-sibling::*)]/rho[contains(@src,"100")][@xml:lang="no"][not(preceding-sibling::*)][not(following-sibling::*)]//tau[not(preceding-sibling::*)]//chi[@string="attribute"][@xml:lang="nb"][@xml:id="id5"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]]]</xpath>
<tree>
<nu abort="123456789">
<delta token="100%" xml:id="id1">
<zeta>
<mu xml:lang="no"/>
<mu abort="true" xml:lang="nb" xml:id="id2">
<omega att="123456789" xml:lang="en" xml:id="id3"/>
<sigma attribute="this.nodeValue" xml:id="id4">
<rho src="100%" xml:lang="no">
<tau>
<chi string="attribute" xml:lang="nb" xml:id="id5">
<green>This text must be green</green>
</chi>
</tau>
</rho>
</sigma>
</mu>
</zeta>
</delta>
</nu>
</tree>
</test>
<test>
<xpath>//alpha//zeta[@abort][not(preceding-sibling::*)][following-sibling::tau[@token][@xml:id="id1"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//chi[@xml:lang="en-GB"][@xml:id="id2"][not(following-sibling::*)]//tau[@true="another attribute value"]/theta[contains(concat(@delete,"$"),"attribute$")][@xml:lang="nb"][not(preceding-sibling::*)]/xi[contains(concat(@and,"$"),"Value$")][@xml:lang="en-GB"][@xml:id="id3"][not(child::node())][following-sibling::omicron[@title][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::epsilon[@xml:lang="en-US"][@xml:id="id4"][not(child::node())][following-sibling::gamma[starts-with(@object,"_")][@xml:lang="no"][@xml:id="id5"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::theta[not(child::node())][following-sibling::kappa[@xml:id="id6"][preceding-sibling::*[position() = 5]][not(child::node())][following-sibling::omicron[@title][@xml:lang="nb"][@xml:id="id7"][preceding-sibling::*[position() = 6]]/phi[starts-with(concat(@src,"-"),"attribute-")][@xml:id="id8"][not(preceding-sibling::*)][not(child::node())][following-sibling::chi[@title="_blank"][@xml:lang="nb"][preceding-sibling::*[position() = 1]]//sigma[@xml:lang="en-GB"][@xml:id="id9"]/theta[starts-with(@insert,"this.node")][@xml:lang="en-US"][@xml:id="id10"]//chi//*[contains(@abort,"e")][@xml:id="id11"][not(child::node())][following-sibling::*[@xml:id="id12"][not(following-sibling::*)]/kappa[contains(concat(@data,"$"),"alue$")][not(following-sibling::*)]]]][position() = 1]]]]][position() = 1]][position() = 1]]</xpath>
<tree>
<alpha>
<zeta abort="attribute value"/>
<tau token="this-is-att-value" xml:id="id1">
<chi xml:lang="en-GB" xml:id="id2">
<tau true="another attribute value">
<theta delete="attribute" xml:lang="nb">
<xi and="this.nodeValue" xml:lang="en-GB" xml:id="id3"/>
<omicron title="content"/>
<epsilon xml:lang="en-US" xml:id="id4"/>
<gamma object="_blank" xml:lang="no" xml:id="id5"/>
<theta/>
<kappa xml:id="id6"/>
<omicron title="_blank" xml:lang="nb" xml:id="id7">
<phi src="attribute-value" xml:id="id8"/>
<chi title="_blank" xml:lang="nb">
<sigma xml:lang="en-GB" xml:id="id9">
<theta insert="this.nodeValue" xml:lang="en-US" xml:id="id10">
<chi>
<any abort="attribute value" xml:id="id11"/>
<any xml:id="id12">
<kappa data="this.nodeValue">
<green>This text must be green</green>
</kappa>
</any>
</chi>
</theta>
</sigma>
</chi>
</omicron>
</theta>
</tau>
</chi>
</tau>
</alpha>
</tree>
</test>
<test>
<xpath>//omega[@xml:lang="en-GB"]/tau[@xml:lang="en-US"][not(preceding-sibling::*)][following-sibling::epsilon[contains(@att,"ttribute-")][following-sibling::*[position()=3]][not(child::node())][following-sibling::pi[contains(concat(@desciption,"$"),"nt$")][not(child::node())][following-sibling::omicron[@object][@xml:id="id1"][preceding-sibling::*[position() = 3]][following-sibling::epsilon[@false][not(following-sibling::*)]/alpha[@xml:lang="en-US"][not(following-sibling::*)]/phi[contains(@number,"lue")][@xml:id="id2"][following-sibling::*[position()=1]][not(child::node())][following-sibling::delta[@xml:lang="no-nb"][@xml:id="id3"][not(following-sibling::*)]/delta[not(preceding-sibling::*)]/psi[starts-with(@desciption,"tru")][@xml:id="id4"][not(preceding-sibling::*)][not(preceding-sibling::psi or following-sibling::psi)]]]]][position() = 1]]</xpath>
<tree>
<omega xml:lang="en-GB">
<tau xml:lang="en-US"/>
<epsilon att="attribute-value"/>
<pi desciption="content"/>
<omicron object="this-is-att-value" xml:id="id1"/>
<epsilon false="attribute-value">
<alpha xml:lang="en-US">
<phi number="attribute-value" xml:id="id2"/>
<delta xml:lang="no-nb" xml:id="id3">
<delta>
<psi desciption="true" xml:id="id4">
<green>This text must be green</green>
</psi>
</delta>
</delta>
</alpha>
</epsilon>
</omega>
</tree>
</test>
<test>
<xpath>//theta[contains(concat(@attrib,"$"),"lue$")][@xml:id="id1"]/phi[contains(@desciption,"on")][@xml:lang="nb"][not(preceding-sibling::*)][not(following-sibling::*)]//lambda[@xml:lang="nb"]/tau[@string][@xml:lang="en"][not(preceding-sibling::*)][not(following-sibling::*)]//psi[@token][@xml:id="id2"][not(following-sibling::*)][not(following-sibling::psi)]/tau[@xml:lang="en-US"][@xml:id="id3"]</xpath>
<tree>
<theta attrib="attribute value" xml:id="id1">
<phi desciption="content" xml:lang="nb">
<lambda xml:lang="nb">
<tau string="false" xml:lang="en">
<psi token="123456789" xml:id="id2">
<tau xml:lang="en-US" xml:id="id3">
<green>This text must be green</green>
</tau>
</psi>
</tau>
</lambda>
</phi>
</theta>
</tree>
</test>
<test>
<xpath>//epsilon[@src="123456789"]//alpha[not(preceding-sibling::*)]/delta[@xml:id="id1"][following-sibling::tau[@desciption][@xml:id="id2"][not(following-sibling::*)]/pi[contains(concat(@attribute,"$"),"ute value$")][following-sibling::*[position()=1]][not(child::node())][following-sibling::iota[@xml:lang="no-nb"][@xml:id="id3"]/*[starts-with(concat(@object,"-"),"attribute value-")][@xml:id="id4"][following-sibling::*[position()=1]][not(child::node())][following-sibling::delta[@xml:id="id5"][not(following-sibling::*)]//upsilon[@xml:id="id6"][following-sibling::gamma[starts-with(@true,"at")][@xml:lang="no"][preceding-sibling::*[position() = 1]][following-sibling::xi[@xml:lang="no-nb"][preceding-sibling::*[position() = 2]]//delta[starts-with(@string,"t")][following-sibling::kappa[@xml:id="id7"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][not(child::node())][following-sibling::delta[starts-with(concat(@desciption,"-"),"100%-")][preceding-sibling::*[position() = 2]]/mu[starts-with(@data,"another attribu")][@xml:lang="en-US"][not(preceding-sibling::*)][following-sibling::xi[contains(concat(@or,"$"),".nodeValue$")][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/kappa[contains(concat(@attrib,"$")," value$")][not(preceding-sibling::*)][following-sibling::*[position()=1]][not(child::node())][following-sibling::phi[contains(concat(@desciption,"$"),"se$")]//theta[@xml:lang="no-nb"][@xml:id="id8"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]]]]]]][position() = 1]]]]</xpath>
<tree>
<epsilon src="123456789">
<alpha>
<delta xml:id="id1"/>
<tau desciption="_blank" xml:id="id2">
<pi attribute="attribute value"/>
<iota xml:lang="no-nb" xml:id="id3">
<any object="attribute value" xml:id="id4"/>
<delta xml:id="id5">
<upsilon xml:id="id6"/>
<gamma true="attribute-value" xml:lang="no"/>
<xi xml:lang="no-nb">
<delta string="true"/>
<kappa xml:id="id7"/>
<delta desciption="100%">
<mu data="another attribute value" xml:lang="en-US"/>
<xi or="this.nodeValue">
<kappa attrib="another attribute value"/>
<phi desciption="false">
<theta xml:lang="no-nb" xml:id="id8">
<green>This text must be green</green>
</theta>
</phi>
</xi>
</delta>
</xi>
</delta>
</iota>
</tau>
</alpha>
</epsilon>
</tree>
</test>
<test>
<xpath>//xi[starts-with(concat(@attribute,"-"),"attribute-")][@xml:lang="en"][@xml:id="id1"]/*[@xml:lang="no-nb"]/zeta[starts-with(@or,"attribute-va")][@xml:lang="en"][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]/theta[starts-with(@data,"attribute")][not(preceding-sibling::*)][not(following-sibling::*)]//rho[@string][@xml:lang="no-nb"][not(preceding-sibling::*)][not(following-sibling::*)]/chi[not(following-sibling::*)]//epsilon[starts-with(concat(@true,"-"),"this-")][@xml:id="id3"][not(following-sibling::*)]/gamma[@desciption][not(preceding-sibling::*)][not(child::node())][following-sibling::gamma[@xml:lang="no"][@xml:id="id4"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/mu[@xml:lang="no"][not(child::node())][following-sibling::theta[@xml:id="id5"][following-sibling::*[position()=3]][not(child::node())][following-sibling::xi[@xml:id="id6"][preceding-sibling::*[position() = 2]][following-sibling::pi[not(child::node())][following-sibling::lambda[@class][preceding-sibling::*[position() = 4]]/lambda[@xml:id="id7"][not(preceding-sibling::*)][following-sibling::sigma[contains(@object,"alse")][@xml:id="id8"]/delta[@xml:lang="nb"][position() = 1]]]]][position() = 1]][position() = 1]]</xpath>
<tree>
<xi attribute="attribute-value" xml:lang="en" xml:id="id1">
<any xml:lang="no-nb">
<zeta or="attribute-value" xml:lang="en" xml:id="id2">
<theta data="attribute">
<rho string="attribute" xml:lang="no-nb">
<chi>
<epsilon true="this-is-att-value" xml:id="id3">
<gamma desciption="100%"/>
<gamma xml:lang="no" xml:id="id4">
<mu xml:lang="no"/>
<theta xml:id="id5"/>
<xi xml:id="id6"/>
<pi/>
<lambda class="attribute value">
<lambda xml:id="id7"/>
<sigma object="false" xml:id="id8">
<delta xml:lang="nb">
<green>This text must be green</green>
</delta>
</sigma>
</lambda>
</gamma>
</epsilon>
</chi>
</rho>
</theta>
</zeta>
</any>
</xi>
</tree>
</test>
<test>
<xpath>//omicron[@insert]/gamma[@xml:id="id1"][not(child::node())][following-sibling::alpha[@abort="content"][@xml:id="id2"][preceding-sibling::*[position() = 1]]//epsilon[contains(concat(@title,"$"),"his-is-att-value$")][not(child::node())][following-sibling::delta[@xml:id="id3"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::beta[@src][@xml:lang="en-GB"][not(child::node())][following-sibling::*[@abort][@xml:lang="en"]/kappa[contains(@insert,"ont")][@xml:lang="no-nb"]/xi[starts-with(@data,"at")][@xml:lang="nb"][following-sibling::*[position()=1]][not(child::node())][following-sibling::nu[@xml:lang="en-GB"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//pi[not(following-sibling::*)][position() = 1]]][position() = 1]]]]</xpath>
<tree>
<omicron insert="false">
<gamma xml:id="id1"/>
<alpha abort="content" xml:id="id2">
<epsilon title="this-is-att-value"/>
<delta xml:id="id3"/>
<beta src="content" xml:lang="en-GB"/>
<any abort="content" xml:lang="en">
<kappa insert="content" xml:lang="no-nb">
<xi data="attribute value" xml:lang="nb"/>
<nu xml:lang="en-GB">
<pi>
<green>This text must be green</green>
</pi>
</nu>
</kappa>
</any>
</alpha>
</omicron>
</tree>
</test>
<test>
<xpath>//eta/xi[@xml:id="id1"][not(preceding-sibling::*)][not(following-sibling::*)]//beta[@content][not(preceding-sibling::*)]/phi[not(preceding-sibling::*)][not(following-sibling::*)]//phi[@xml:id="id2"]//epsilon[contains(concat(@attr,"$")," 1px green$")][not(following-sibling::*)]//zeta[contains(concat(@true,"$"),"23456789$")][@xml:lang="no"][@xml:id="id3"][not(preceding-sibling::*)][following-sibling::*[position()=1]][following-sibling::zeta[@xml:lang="no-nb"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/epsilon[@xml:lang="no"][@xml:id="id4"][following-sibling::zeta[@xml:id="id5"][following-sibling::*[position()=4]][following-sibling::iota[@delete][@xml:id="id6"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::chi[starts-with(concat(@title,"-"),"123456789-")][@xml:id="id7"][following-sibling::omicron[starts-with(@or,"attribute v")][preceding-sibling::*[position() = 4]][not(child::node())][following-sibling::rho[contains(@name,"e")][@xml:lang="no"][preceding-sibling::*[position() = 5]][not(following-sibling::*)]/phi[@xml:lang="no-nb"][not(preceding-sibling::*)][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<tree>
<eta>
<xi xml:id="id1">
<beta content="123456789">
<phi>
<phi xml:id="id2">
<epsilon attr="solid 1px green">
<zeta true="123456789" xml:lang="no" xml:id="id3"/>
<zeta xml:lang="no-nb">
<epsilon xml:lang="no" xml:id="id4"/>
<zeta xml:id="id5"/>
<iota delete="_blank" xml:id="id6"/>
<chi title="123456789" xml:id="id7"/>
<omicron or="attribute value"/>
<rho name="attribute value" xml:lang="no">
<phi xml:lang="no-nb">
<green>This text must be green</green>
</phi>
</rho>
</zeta>
</epsilon>
</phi>
</phi>
</beta>
</xi>
</eta>
</tree>
</test>
<test>
<xpath>//sigma[starts-with(@att,"th")][@xml:lang="no"][@xml:id="id1"]//sigma[@xml:lang="no"][not(preceding-sibling::*)][following-sibling::rho[starts-with(concat(@true,"-"),"content-")][@xml:id="id2"][preceding-sibling::*[position() = 1]][following-sibling::rho[starts-with(concat(@insert,"-"),"solid 1px green-")][@xml:lang="no"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]/zeta[@title][@xml:lang="nb"]/rho[@xml:lang="no-nb"][not(preceding-sibling::*)]][position() = 1]]</xpath>
<tree>
<sigma att="this.nodeValue" xml:lang="no" xml:id="id1">
<sigma xml:lang="no"/>
<rho true="content" xml:id="id2"/>
<rho insert="solid 1px green" xml:lang="no">
<zeta title="true" xml:lang="nb">
<rho xml:lang="no-nb">
<green>This text must be green</green>
</rho>
</zeta>
</rho>
</sigma>
</tree>
</test>
<test>
<xpath>//zeta[starts-with(@false,"attribute val")][@xml:id="id1"]//eta[@xml:id="id2"][not(preceding-sibling::*)][following-sibling::kappa[following-sibling::*[position()=3]][not(child::node())][following-sibling::kappa[@xml:id="id3"][following-sibling::*[position()=2]][following-sibling::rho[@xml:lang="en-US"][@xml:id="id4"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::omicron[@desciption="another attribute value"][@xml:lang="nb"][not(following-sibling::*)]/tau[@and][@xml:id="id5"][not(following-sibling::*)]//chi[@token][@xml:id="id6"][following-sibling::*[position()=1]][not(child::node())][following-sibling::mu[contains(concat(@name,"$"),"-att-value$")]//tau[contains(concat(@and,"$"),"789$")][following-sibling::pi[contains(@data,"0")][@xml:lang="nb"][not(following-sibling::*)]//delta[@src="true"][@xml:lang="nb"]/psi[@xml:lang="nb"][@xml:id="id7"][not(preceding-sibling::*)][not(following-sibling::*)]//eta[@xml:id="id8"][not(preceding-sibling::*)]/tau[@xml:lang="en"][@xml:id="id9"][not(preceding-sibling::*)]//lambda[not(following-sibling::*)]][position() = 1]]][position() = 1]]][position() = 1]]</xpath>
<tree>
<zeta false="attribute value" xml:id="id1">
<eta xml:id="id2"/>
<kappa/>
<kappa xml:id="id3"/>
<rho xml:lang="en-US" xml:id="id4"/>
<omicron desciption="another attribute value" xml:lang="nb">
<tau and="this.nodeValue" xml:id="id5">
<chi token="attribute value" xml:id="id6"/>
<mu name="this-is-att-value">
<tau and="123456789"/>
<pi data="100%" xml:lang="nb">
<delta src="true" xml:lang="nb">
<psi xml:lang="nb" xml:id="id7">
<eta xml:id="id8">
<tau xml:lang="en" xml:id="id9">
<lambda>
<green>This text must be green</green>
</lambda>
</tau>
</eta>
</psi>
</delta>
</pi>
</mu>
</tau>
</omicron>
</zeta>
</tree>
</test>
<test>
<xpath>//phi[@xml:lang="en-GB"]//chi[contains(@desciption,"e")][@xml:lang="no-nb"]//omega[@xml:lang="nb"][@xml:id="id1"][not(preceding-sibling::*)][not(following-sibling::*)]//nu[not(following-sibling::*)]//nu[contains(concat(@attr,"$"),"alue$")][@xml:lang="en-US"][not(preceding-sibling::*)]//iota[@xml:lang="en-US"]//rho[not(preceding-sibling::*)][not(following-sibling::*)]/phi[following-sibling::lambda[starts-with(concat(@desciption,"-"),"attribute-")][@xml:lang="no"][@xml:id="id2"][position() = 1]]</xpath>
<tree>
<phi xml:lang="en-GB">
<chi desciption="attribute" xml:lang="no-nb">
<omega xml:lang="nb" xml:id="id1">
<nu>
<nu attr="another attribute value" xml:lang="en-US">
<iota xml:lang="en-US">
<rho>
<phi/>
<lambda desciption="attribute-value" xml:lang="no" xml:id="id2">
<green>This text must be green</green>
</lambda>
</rho>
</iota>
</nu>
</nu>
</omega>
</chi>
</phi>
</tree>
</test>
<test>
<xpath>//beta[@data][@xml:lang="en-US"][@xml:id="id1"]/lambda[starts-with(concat(@attr,"-"),"_blank-")][@xml:lang="en-US"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::*[position()=2]][following-sibling::iota[contains(concat(@or,"$"),"er attribute value$")][@xml:lang="en-GB"][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::eta[contains(concat(@and,"$"),"e$")][@xml:lang="en-GB"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]//epsilon[@or="123456789"][@xml:id="id4"][following-sibling::*[position()=1]][following-sibling::epsilon[@attribute][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/zeta[@content][@xml:lang="nb"][@xml:id="id5"][not(following-sibling::*)]/*[@xml:id="id6"][not(preceding-sibling::*)][not(child::node())][following-sibling::gamma[contains(concat(@attrib,"$"),"ent$")][@xml:id="id7"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::eta[@xml:id="id8"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]][position() = 1]]][position() = 1]][position() = 1]]</xpath>
<tree>
<beta data="attribute" xml:lang="en-US" xml:id="id1">
<lambda attr="_blank" xml:lang="en-US" xml:id="id2"/>
<iota or="another attribute value" xml:lang="en-GB" xml:id="id3"/>
<eta and="false" xml:lang="en-GB">
<epsilon or="123456789" xml:id="id4"/>
<epsilon attribute="this-is-att-value">
<zeta content="this.nodeValue" xml:lang="nb" xml:id="id5">
<any xml:id="id6"/>
<gamma attrib="content" xml:id="id7"/>
<eta xml:id="id8">
<green>This text must be green</green>
</eta>
</zeta>
</epsilon>
</eta>
</beta>
</tree>
</test>
<test>
<xpath>//lambda[starts-with(concat(@data,"-"),"another attribute value-")][@xml:lang="en"]/xi[not(preceding-sibling::*)][not(child::node())][following-sibling::upsilon[preceding-sibling::*[position() = 1]][following-sibling::eta[starts-with(concat(@att,"-"),"this.nodeValue-")][@xml:id="id1"]//mu[@att][@xml:lang="en"][@xml:id="id2"][not(following-sibling::*)]//mu[@xml:lang="no"][not(following-sibling::*)]//chi[@xml:id="id3"]/lambda[contains(concat(@content,"$"),"ttribute value$")][@xml:lang="no"][@xml:id="id4"][not(preceding-sibling::*)][following-sibling::iota[contains(@name,"en")][preceding-sibling::*[position() = 1]][following-sibling::kappa[@xml:lang="no"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]][position() = 1]]]]</xpath>
<tree>
<lambda data="another attribute value" xml:lang="en">
<xi/>
<upsilon/>
<eta att="this.nodeValue" xml:id="id1">
<mu att="true" xml:lang="en" xml:id="id2">
<mu xml:lang="no">
<chi xml:id="id3">
<lambda content="another attribute value" xml:lang="no" xml:id="id4"/>
<iota name="solid 1px green"/>
<kappa xml:lang="no">
<green>This text must be green</green>
</kappa>
</chi>
</mu>
</mu>
</eta>
</lambda>
</tree>
</test>
<test>
<xpath>//*[starts-with(@string,"another attribute va")][@xml:lang="en"][@xml:id="id1"]/gamma[@xml:lang="en-GB"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::upsilon[starts-with(concat(@token,"-"),"content-")][@xml:id="id3"]/rho[@true="attribute-value"][not(preceding-sibling::*)]/pi[@insert="123456789"][@xml:lang="en-GB"][not(preceding-sibling::*)][not(following-sibling::*)][not(preceding-sibling::pi)]/chi[contains(concat(@delete,"$"),"content$")][@xml:lang="nb"][@xml:id="id4"][not(child::node())][following-sibling::eta[@xml:lang="en"]/kappa[@xml:id="id5"]/delta[starts-with(@number,"a")][@xml:lang="en-US"][@xml:id="id6"][not(preceding-sibling::*)][not(following-sibling::*)][not(following-sibling::delta)]/epsilon[@abort][@xml:lang="en-US"][not(preceding-sibling::*)][following-sibling::*[position()=4]][following-sibling::gamma[@xml:lang="en"][@xml:id="id7"][not(child::node())][following-sibling::delta[following-sibling::*[position()=2]][following-sibling::omega[starts-with(@or,"solid ")][@xml:id="id8"][preceding-sibling::*[position() = 3]][following-sibling::*[position()=1]][not(child::node())][following-sibling::theta[preceding-sibling::*[position() = 4]]/gamma[contains(@number,"e value")][@xml:lang="no"][@xml:id="id9"][not(child::node())][following-sibling::*[starts-with(@delete,"_")]/rho[@xml:lang="nb"][following-sibling::alpha[@xml:lang="en-GB"][preceding-sibling::*[position() = 1]][following-sibling::mu[@xml:id="id10"][preceding-sibling::*[position() = 2]]//*[@xml:lang="en-GB"][not(following-sibling::*)]//zeta[@abort][@xml:lang="en-US"][not(preceding-sibling::*)][not(following-sibling::*)]//eta[@attribute="123456789"][not(following-sibling::*)]//iota[@xml:lang="nb"][not(preceding-sibling::*)][not(following-sibling::*)]][position() = 1]][position() = 1]]][position() = 1]]]]]]</xpath>
<tree>
<any string="another attribute value" xml:lang="en" xml:id="id1">
<gamma xml:lang="en-GB" xml:id="id2"/>
<upsilon token="content" xml:id="id3">
<rho true="attribute-value">
<pi insert="123456789" xml:lang="en-GB">
<chi delete="content" xml:lang="nb" xml:id="id4"/>
<eta xml:lang="en">
<kappa xml:id="id5">
<delta number="attribute" xml:lang="en-US" xml:id="id6">
<epsilon abort="false" xml:lang="en-US"/>
<gamma xml:lang="en" xml:id="id7"/>
<delta/>
<omega or="solid 1px green" xml:id="id8"/>
<theta>
<gamma number="attribute value" xml:lang="no" xml:id="id9"/>
<any delete="_blank">
<rho xml:lang="nb"/>
<alpha xml:lang="en-GB"/>
<mu xml:id="id10">
<any xml:lang="en-GB">
<zeta abort="123456789" xml:lang="en-US">
<eta attribute="123456789">
<iota xml:lang="nb">
<green>This text must be green</green>
</iota>
</eta>
</zeta>
</any>
</mu>
</any>
</theta>
</delta>
</kappa>
</eta>
</pi>
</rho>
</upsilon>
</any>
</tree>
</test>
<test>
<xpath>//gamma[@xml:id="id1"]/tau[@xml:id="id2"][not(child::node())][following-sibling::phi[starts-with(@insert,"attribute-v")][@xml:lang="en-US"][@xml:id="id3"][following-sibling::pi//upsilon[@xml:lang="en-GB"][@xml:id="id4"][following-sibling::*[position()=1]][not(child::node())][following-sibling::psi[@title][@xml:lang="en-US"]/eta[contains(concat(@abort,"$"),"alue$")][not(child::node())][following-sibling::alpha[@xml:lang="no-nb"][@xml:id="id5"][preceding-sibling::*[position() = 1]]/epsilon[@and="solid 1px green"][@xml:lang="no"][not(preceding-sibling::*)][following-sibling::nu[@desciption][@xml:lang="nb"]/psi[@xml:id="id6"][not(following-sibling::*)]//omicron[not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@xml:lang="no"][not(child::node())][following-sibling::mu[not(following-sibling::*)]/iota[contains(concat(@true,"$"),"attribute$")][not(preceding-sibling::*)][following-sibling::*[position()=2]][not(child::node())][following-sibling::mu[@attr][@xml:id="id7"][preceding-sibling::*[position() = 1]][following-sibling::nu[@xml:lang="en-US"][@xml:id="id8"]//*[not(preceding-sibling::*)][position() = 1]][position() = 1]]]]]]]][position() = 1]]</xpath>
<tree>
<gamma xml:id="id1">
<tau xml:id="id2"/>
<phi insert="attribute-value" xml:lang="en-US" xml:id="id3"/>
<pi>
<upsilon xml:lang="en-GB" xml:id="id4"/>
<psi title="false" xml:lang="en-US">
<eta abort="attribute-value"/>
<alpha xml:lang="no-nb" xml:id="id5">
<epsilon and="solid 1px green" xml:lang="no"/>
<nu desciption="attribute-value" xml:lang="nb">
<psi xml:id="id6">
<omicron/>
<eta xml:lang="no"/>
<mu>
<iota true="attribute"/>
<mu attr="false" xml:id="id7"/>
<nu xml:lang="en-US" xml:id="id8">
<any>
<green>This text must be green</green>
</any>
</nu>
</mu>
</psi>
</nu>
</alpha>
</psi>
</pi>
</gamma>
</tree>
</test>
<test>
<xpath>//iota[@xml:id="id1"]//kappa[@xml:id="id2"][not(child::node())][following-sibling::*[@xml:lang="en"][@xml:id="id3"][not(following-sibling::*)]//lambda[@xml:id="id4"][not(preceding-sibling::*)][following-sibling::omega[@xml:lang="en-US"][@xml:id="id5"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/xi[@att][@xml:lang="en"][@xml:id="id6"][not(preceding-sibling::*)][following-sibling::psi[@content="_blank"][@xml:id="id7"]//kappa[starts-with(concat(@data,"-"),"this-")][@xml:id="id8"][not(preceding-sibling::*)][not(following-sibling::*)]][position() = 1]][position() = 1]]</xpath>
<tree>
<iota xml:id="id1">
<kappa xml:id="id2"/>
<any xml:lang="en" xml:id="id3">
<lambda xml:id="id4"/>
<omega xml:lang="en-US" xml:id="id5">
<xi att="_blank" xml:lang="en" xml:id="id6"/>
<psi content="_blank" xml:id="id7">
<kappa data="this-is-att-value" xml:id="id8">
<green>This text must be green</green>
</kappa>
</psi>
</omega>
</any>
</iota>
</tree>
</test>
<test>
<xpath>//tau[@data="solid 1px green"][@xml:lang="nb"][@xml:id="id1"]//zeta[@xml:lang="nb"][not(child::node())][following-sibling::upsilon[@xml:lang="nb"][preceding-sibling::*[position() = 1]]/*[@content="this-is-att-value"][not(preceding-sibling::*)][following-sibling::sigma[starts-with(concat(@false,"-"),"content-")][@xml:lang="nb"][not(following-sibling::*)]//lambda[@xml:lang="nb"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::theta[@desciption="attribute"][@xml:lang="nb"][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/epsilon[@and][not(preceding-sibling::*)][not(child::node())][following-sibling::kappa[starts-with(concat(@data,"-"),"100%-")][not(following-sibling::*)]//eta[@xml:lang="nb"][@xml:id="id4"][not(following-sibling::*)]//alpha[not(child::node())][following-sibling::omicron[starts-with(@content,"this.nodeVal")][following-sibling::*[position()=2]][not(child::node())][following-sibling::iota[@object="123456789"][@xml:lang="en-GB"][preceding-sibling::*[position() = 2]][following-sibling::*[position()=1]][not(child::node())][following-sibling::phi[@xml:lang="no"][@xml:id="id5"][not(following-sibling::*)]/eta[@xml:lang="nb"][@xml:id="id6"][not(preceding-sibling::*)][not(child::node())][following-sibling::lambda[starts-with(@number,"this.")][@xml:id="id7"][preceding-sibling::*[position() = 1]][following-sibling::lambda[@xml:id="id8"][preceding-sibling::*[position() = 2]]//iota/iota[@name][@xml:id="id9"][not(preceding-sibling::*)]/tau[following-sibling::chi[contains(@true,"e")][@xml:id="id10"][preceding-sibling::*[position() = 1]]]][position() = 1]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]]]</xpath>
<tree>
<tau data="solid 1px green" xml:lang="nb" xml:id="id1">
<zeta xml:lang="nb"/>
<upsilon xml:lang="nb">
<any content="this-is-att-value"/>
<sigma false="content" xml:lang="nb">
<lambda xml:lang="nb" xml:id="id2"/>
<theta desciption="attribute" xml:lang="nb" xml:id="id3">
<epsilon and="123456789"/>
<kappa data="100%">
<eta xml:lang="nb" xml:id="id4">
<alpha/>
<omicron content="this.nodeValue"/>
<iota object="123456789" xml:lang="en-GB"/>
<phi xml:lang="no" xml:id="id5">
<eta xml:lang="nb" xml:id="id6"/>
<lambda number="this.nodeValue" xml:id="id7"/>
<lambda xml:id="id8">
<iota>
<iota name="attribute value" xml:id="id9">
<tau/>
<chi true="content" xml:id="id10">
<green>This text must be green</green>
</chi>
</iota>
</iota>
</lambda>
</phi>
</eta>
</kappa>
</theta>
</sigma>
</upsilon>
</tau>
</tree>
</test>
<test>
<xpath>//epsilon[contains(@attrib,"e")][@xml:id="id1"]//eta[@true][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@or][@xml:id="id2"][not(child::node())][following-sibling::sigma[preceding-sibling::*[position() = 2]]//psi[@number][@xml:lang="nb"][@xml:id="id3"][following-sibling::*[@xml:lang="no"][@xml:id="id4"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//zeta[@xml:lang="en"][@xml:id="id5"][not(following-sibling::*)]/gamma[@xml:id="id6"]/theta[not(preceding-sibling::*)][not(following-sibling::*)]/chi//lambda[@xml:lang="no-nb"]/gamma[@xml:lang="no"][@xml:id="id7"][not(child::node())][following-sibling::phi[@xml:lang="nb"][@xml:id="id8"][preceding-sibling::*[position() = 1]][following-sibling::gamma[contains(@false,".nodeValue")][@xml:lang="en"][following-sibling::*[position()=1]][not(child::node())][following-sibling::iota[preceding-sibling::*[position() = 3]]//tau[@xml:lang="no-nb"][@xml:id="id9"][not(child::node())][following-sibling::chi[@xml:lang="no-nb"][preceding-sibling::*[position() = 1]]]][position() = 1]]][position() = 1]][position() = 1]]]</xpath>
<tree>
<epsilon attrib="false" xml:id="id1">
<eta true="_blank"/>
<eta or="true" xml:id="id2"/>
<sigma>
<psi number="this.nodeValue" xml:lang="nb" xml:id="id3"/>
<any xml:lang="no" xml:id="id4">
<zeta xml:lang="en" xml:id="id5">
<gamma xml:id="id6">
<theta>
<chi>
<lambda xml:lang="no-nb">
<gamma xml:lang="no" xml:id="id7"/>
<phi xml:lang="nb" xml:id="id8"/>
<gamma false="this.nodeValue" xml:lang="en"/>
<iota>
<tau xml:lang="no-nb" xml:id="id9"/>
<chi xml:lang="no-nb">
<green>This text must be green</green>
</chi>
</iota>
</lambda>
</chi>
</theta>
</gamma>
</zeta>
</any>
</sigma>
</epsilon>
</tree>
</test>
<test>
<xpath>//pi[@string="100%"][@xml:lang="en"]/chi[@xml:lang="en"][@xml:id="id1"]/xi[contains(concat(@content,"$"),"se$")][not(preceding-sibling::*)]//alpha[contains(@title," ")][@xml:lang="nb"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::rho[@xml:id="id3"][not(following-sibling::*)]/delta[@name="attribute value"][@xml:lang="en"][not(preceding-sibling::*)][not(following-sibling::*)]/lambda[contains(concat(@delete,"$"),"e$")][@xml:lang="nb"][not(child::node())][following-sibling::epsilon[@xml:lang="no"][@xml:id="id4"][not(preceding-sibling::epsilon)]/alpha[@xml:lang="en-US"][not(preceding-sibling::*)][following-sibling::psi[starts-with(concat(@attribute,"-"),"this.nodeValue-")][@xml:id="id5"][preceding-sibling::*[position() = 1]]//tau[starts-with(@title,"_blan")][not(following-sibling::*)]/*[@delete][@xml:id="id6"][not(preceding-sibling::*)][following-sibling::psi[contains(@or,"nother attribute ")][preceding-sibling::*[position() = 1]][following-sibling::*[position()=4]][not(child::node())][following-sibling::pi[following-sibling::nu[starts-with(concat(@object,"-"),"solid 1px green-")][@xml:id="id7"][preceding-sibling::*[position() = 3]][following-sibling::kappa[contains(@content,"attribute va")][@xml:id="id8"][not(child::node())][following-sibling::delta[@xml:lang="no"][not(following-sibling::*)]//phi[@and="attribute-value"][@xml:lang="no-nb"][not(child::node())][following-sibling::theta[contains(@att,"nk")][@xml:lang="nb"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=2]][not(child::node())][following-sibling::beta[starts-with(@object,"attr")][not(child::node())][following-sibling::mu[@xml:lang="nb"][not(following-sibling::*)]/phi[@xml:id="id9"][not(preceding-sibling::*)][not(following-sibling::*)]//zeta[@xml:lang="nb"][@xml:id="id10"][not(preceding-sibling::*)][not(following-sibling::*)]/xi[@xml:lang="en-GB"][@xml:id="id11"][not(following-sibling::*)]][position() = 1]]][position() = 1]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<tree>
<pi string="100%" xml:lang="en">
<chi xml:lang="en" xml:id="id1">
<xi content="false">
<alpha title="attribute value" xml:lang="nb" xml:id="id2"/>
<rho xml:id="id3">
<delta name="attribute value" xml:lang="en">
<lambda delete="attribute" xml:lang="nb"/>
<epsilon xml:lang="no" xml:id="id4">
<alpha xml:lang="en-US"/>
<psi attribute="this.nodeValue" xml:id="id5">
<tau title="_blank">
<any delete="attribute-value" xml:id="id6"/>
<psi or="another attribute value"/>
<pi/>
<nu object="solid 1px green" xml:id="id7"/>
<kappa content="attribute value" xml:id="id8"/>
<delta xml:lang="no">
<phi and="attribute-value" xml:lang="no-nb"/>
<theta att="_blank" xml:lang="nb"/>
<beta object="attribute"/>
<mu xml:lang="nb">
<phi xml:id="id9">
<zeta xml:lang="nb" xml:id="id10">
<xi xml:lang="en-GB" xml:id="id11">
<green>This text must be green</green>
</xi>
</zeta>
</phi>
</mu>
</delta>
</tau>
</psi>
</epsilon>
</delta>
</rho>
</xi>
</chi>
</pi>
</tree>
</test>
<test>
<xpath>//tau/xi[@xml:lang="en-GB"][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@insert][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::theta[@token][not(following-sibling::*)]/tau[@xml:id="id1"]//zeta[contains(@insert,"100")][@xml:lang="nb"][not(preceding-sibling::*)][not(child::node())][following-sibling::beta[not(child::node())][following-sibling::alpha[@xml:lang="en-US"][preceding-sibling::*[position() = 2]]]][position() = 1]][position() = 1]]</xpath>
<tree>
<tau>
<xi xml:lang="en-GB"/>
<eta insert="false"/>
<theta token="true">
<tau xml:id="id1">
<zeta insert="100%" xml:lang="nb"/>
<beta/>
<alpha xml:lang="en-US">
<green>This text must be green</green>
</alpha>
</tau>
</theta>
</tau>
</tree>
</test>
<test>
<xpath>//omega[starts-with(@number,"_bla")][@xml:lang="en"]/tau[@xml:id="id1"][not(preceding-sibling::*)]/eta[contains(@src,"deValue")][@xml:lang="en"][following-sibling::gamma[contains(concat(@false,"$"),"100%$")][@xml:id="id2"][following-sibling::alpha[not(following-sibling::*)]/nu[starts-with(concat(@data,"-"),"this-")][@xml:lang="en-US"][not(preceding-sibling::*)][not(child::node())][following-sibling::delta[starts-with(@att,"attrib")][preceding-sibling::*[position() = 1]][following-sibling::pi[contains(@att,"a")][preceding-sibling::*[position() = 2]][following-sibling::*[@false][@xml:lang="no-nb"][@xml:id="id3"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::psi[starts-with(@and,"another attribu")][@xml:id="id4"][not(preceding-sibling::psi)]//epsilon[starts-with(concat(@insert,"-"),"attribute-")][@xml:id="id5"][following-sibling::omega[@xml:lang="en"][@xml:id="id6"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/theta[@attribute][@xml:id="id7"][not(child::node())][following-sibling::nu[@xml:lang="en"]//omicron[@att][@xml:lang="en-US"][@xml:id="id8"][not(preceding-sibling::*)][not(following-sibling::*)]/omega[@insert][@xml:lang="no"][following-sibling::*[position()=3]][not(child::node())][following-sibling::alpha[@xml:lang="nb"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=2]][following-sibling::lambda[@xml:id="id9"][following-sibling::*[position()=1]][following-sibling::nu[not(following-sibling::*)]//xi[@xml:lang="en"][@xml:id="id10"][following-sibling::*[position()=3]][not(child::node())][following-sibling::tau[contains(concat(@data,"$"),"false$")][@xml:id="id11"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::zeta[@xml:lang="en"][not(child::node())][following-sibling::theta[@delete="attribute"][@xml:id="id12"][not(following-sibling::*)][position() = 1]]][position() = 1]][position() = 1]]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]]</xpath>
<tree>
<omega number="_blank" xml:lang="en">
<tau xml:id="id1">
<eta src="this.nodeValue" xml:lang="en"/>
<gamma false="100%" xml:id="id2"/>
<alpha>
<nu data="this-is-att-value" xml:lang="en-US"/>
<delta att="attribute"/>
<pi att="attribute value"/>
<any false="_blank" xml:lang="no-nb" xml:id="id3"/>
<psi and="another attribute value" xml:id="id4">
<epsilon insert="attribute" xml:id="id5"/>
<omega xml:lang="en" xml:id="id6">
<theta attribute="another attribute value" xml:id="id7"/>
<nu xml:lang="en">
<omicron att="solid 1px green" xml:lang="en-US" xml:id="id8">
<omega insert="false" xml:lang="no"/>
<alpha xml:lang="nb"/>
<lambda xml:id="id9"/>
<nu>
<xi xml:lang="en" xml:id="id10"/>
<tau data="false" xml:id="id11"/>
<zeta xml:lang="en"/>
<theta delete="attribute" xml:id="id12">
<green>This text must be green</green>
</theta>
</nu>
</omicron>
</nu>
</omega>
</psi>
</alpha>
</tau>
</omega>
</tree>
</test>
<test>
<xpath>//gamma[@xml:id="id1"]//rho[@xml:lang="nb"][@xml:id="id2"][not(preceding-sibling::*)][not(child::node())][following-sibling::iota[@xml:id="id3"][not(following-sibling::*)]//chi[@string][not(following-sibling::chi)][not(child::node())][following-sibling::epsilon[contains(concat(@abort,"$"),"value$")][@xml:id="id4"][preceding-sibling::*[position() = 1]][following-sibling::theta[@data="solid 1px green"][@xml:id="id5"]//omega[starts-with(@true,"this.n")][@xml:lang="nb"][@xml:id="id6"][not(following-sibling::*)][not(preceding-sibling::omega or following-sibling::omega)]/theta[@xml:id="id7"][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[contains(concat(@attribute,"$"),"bute value$")][@xml:lang="en-GB"][following-sibling::kappa[@src][@xml:lang="nb"][@xml:id="id8"]/iota[@xml:id="id9"][not(following-sibling::*)]/upsilon[starts-with(@insert,"fal")][@xml:lang="no"][@xml:id="id10"]//phi[not(following-sibling::*)]/lambda[not(following-sibling::*)]//chi[@data][@xml:lang="no-nb"][not(child::node())][following-sibling::theta[@xml:id="id11"][not(following-sibling::*)]]]][position() = 1]]]]</xpath>
<tree>
<gamma xml:id="id1">
<rho xml:lang="nb" xml:id="id2"/>
<iota xml:id="id3">
<chi string="attribute value"/>
<epsilon abort="attribute value" xml:id="id4"/>
<theta data="solid 1px green" xml:id="id5">
<omega true="this.nodeValue" xml:lang="nb" xml:id="id6">
<theta xml:id="id7"/>
<eta attribute="attribute value" xml:lang="en-GB"/>
<kappa src="content" xml:lang="nb" xml:id="id8">
<iota xml:id="id9">
<upsilon insert="false" xml:lang="no" xml:id="id10">
<phi>
<lambda>
<chi data="attribute-value" xml:lang="no-nb"/>
<theta xml:id="id11">
<green>This text must be green</green>
</theta>
</lambda>
</phi>
</upsilon>
</iota>
</kappa>
</omega>
</theta>
</iota>
</gamma>
</tree>
</test>
<test>
<xpath>//tau[@xml:lang="no-nb"]//chi[@name="this.nodeValue"][@xml:lang="en"][not(preceding-sibling::*)][not(following-sibling::*)]//rho[@delete][@xml:lang="en-US"][@xml:id="id1"][not(child::node())][following-sibling::kappa[@true][@xml:lang="no"][@xml:id="id2"][preceding-sibling::*[position() = 1]]/*[@xml:lang="no-nb"][@xml:id="id3"][following-sibling::sigma[@xml:lang="no"][@xml:id="id4"][not(child::node())][following-sibling::nu[@xml:id="id5"][preceding-sibling::*[position() = 2]]//delta[@xml:id="id6"][not(preceding-sibling::*)][not(child::node())][following-sibling::sigma[starts-with(@desciption,"true")][@xml:lang="no-nb"][@xml:id="id7"]/omega[starts-with(concat(@abort,"-"),"123456789-")][@xml:id="id8"]//tau[starts-with(concat(@src,"-"),"false-")][@xml:lang="nb"][@xml:id="id9"][not(following-sibling::*)]//lambda[contains(concat(@or,"$"),"een$")][not(preceding-sibling::*)][not(child::node())][following-sibling::omicron[contains(@attribute,"ls")][@xml:lang="no-nb"][following-sibling::chi[@class][@xml:id="id10"][not(following-sibling::*)]//lambda[@string][following-sibling::mu[@xml:lang="no"][preceding-sibling::*[position() = 1]][following-sibling::psi[following-sibling::upsilon[@xml:id="id11"][not(following-sibling::*)]/chi[starts-with(@src,"123456")][@xml:lang="en"][not(preceding-sibling::*)][following-sibling::theta[preceding-sibling::*[position() = 1]][following-sibling::epsilon[contains(@number,"ribute value")][preceding-sibling::*[position() = 2]][not(preceding-sibling::epsilon or following-sibling::epsilon)][following-sibling::kappa[@xml:lang="nb"]]]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]</xpath>
<tree>
<tau xml:lang="no-nb">
<chi name="this.nodeValue" xml:lang="en">
<rho delete="solid 1px green" xml:lang="en-US" xml:id="id1"/>
<kappa true="solid 1px green" xml:lang="no" xml:id="id2">
<any xml:lang="no-nb" xml:id="id3"/>
<sigma xml:lang="no" xml:id="id4"/>
<nu xml:id="id5">
<delta xml:id="id6"/>
<sigma desciption="true" xml:lang="no-nb" xml:id="id7">
<omega abort="123456789" xml:id="id8">
<tau src="false" xml:lang="nb" xml:id="id9">
<lambda or="solid 1px green"/>
<omicron attribute="false" xml:lang="no-nb"/>
<chi class="this.nodeValue" xml:id="id10">
<lambda string="attribute-value"/>
<mu xml:lang="no"/>
<psi/>
<upsilon xml:id="id11">
<chi src="123456789" xml:lang="en"/>
<theta/>
<epsilon number="attribute value"/>
<kappa xml:lang="nb">
<green>This text must be green</green>
</kappa>
</upsilon>
</chi>
</tau>
</omega>
</sigma>
</nu>
</kappa>
</chi>
</tau>
</tree>
</test>
<test>
<xpath>//epsilon[contains(@attribute,"als")][@xml:id="id1"]/omicron[@xml:id="id2"]/mu[starts-with(@title,"another att")][@xml:lang="nb"][@xml:id="id3"][following-sibling::kappa[@xml:lang="no-nb"][following-sibling::*[position()=1]][following-sibling::psi[starts-with(@number,"this-is-at")][@xml:lang="en"][preceding-sibling::*[position() = 2]]//*[@xml:lang="no"][@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)]/sigma[@xml:id="id5"][not(preceding-sibling::*)]/rho[not(preceding-sibling::*)][following-sibling::*[position()=1]][following-sibling::tau[@xml:id="id6"]/lambda[@xml:lang="no"][@xml:id="id7"][not(preceding-sibling::*)]/chi[@xml:lang="nb"][@xml:id="id8"][not(following-sibling::chi)][not(child::node())][following-sibling::theta[contains(concat(@class,"$"),"ue$")][@xml:lang="en-GB"][@xml:id="id9"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::zeta[preceding-sibling::*[position() = 2]]//pi[starts-with(concat(@data,"-"),"attribute-")][not(preceding-sibling::*)][not(preceding-sibling::pi)][not(child::node())][following-sibling::nu[@att][preceding-sibling::*[position() = 1]][position() = 1]]][position() = 1]]][position() = 1]][position() = 1]]</xpath>
<tree>
<epsilon attribute="false" xml:id="id1">
<omicron xml:id="id2">
<mu title="another attribute value" xml:lang="nb" xml:id="id3"/>
<kappa xml:lang="no-nb"/>
<psi number="this-is-att-value" xml:lang="en">
<any xml:lang="no" xml:id="id4">
<sigma xml:id="id5">
<rho/>
<tau xml:id="id6">
<lambda xml:lang="no" xml:id="id7">
<chi xml:lang="nb" xml:id="id8"/>
<theta class="true" xml:lang="en-GB" xml:id="id9"/>
<zeta>
<pi data="attribute"/>
<nu att="this-is-att-value">
<green>This text must be green</green>
</nu>
</zeta>
</lambda>
</tau>
</sigma>
</any>
</psi>
</omicron>
</epsilon>
</tree>
</test>
<test>
<xpath>//gamma//upsilon[not(child::node())][following-sibling::nu[@xml:id="id1"][not(child::node())][following-sibling::eta[starts-with(concat(@att,"-"),"another attribute value-")][preceding-sibling::*[position() = 2]]//sigma[not(preceding-sibling::*)]//lambda[@xml:lang="en-US"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::*[position()=2]][not(child::node())][following-sibling::rho[@xml:id="id3"][following-sibling::mu[contains(@title,"tt-valu")][@xml:id="id4"][not(following-sibling::*)]/sigma[contains(@title,"ibute")]/theta[contains(@true," value")][not(following-sibling::*)]/gamma[position() = 1]]][position() = 1]]]</xpath>
<tree>
<gamma>
<upsilon/>
<nu xml:id="id1"/>
<eta att="another attribute value">
<sigma>
<lambda xml:lang="en-US" xml:id="id2"/>
<rho xml:id="id3"/>
<mu title="this-is-att-value" xml:id="id4">
<sigma title="attribute-value">
<theta true="attribute value">
<gamma>
<green>This text must be green</green>
</gamma>
</theta>
</sigma>
</mu>
</sigma>
</eta>
</gamma>
</tree>
</test>
<test>
<xpath>//eta[@xml:id="id1"]//gamma[@xml:lang="en"][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]/chi[not(child::node())][following-sibling::lambda[@xml:id="id3"][preceding-sibling::*[position() = 1]][following-sibling::xi[starts-with(concat(@delete,"-"),"this-")][preceding-sibling::*[position() = 2]]//psi[contains(@desciption,"tribute")][@xml:lang="en-US"][@xml:id="id4"][not(preceding-sibling::*)]/tau[@xml:id="id5"][not(preceding-sibling::*)][following-sibling::*[position()=2]][following-sibling::omega[@content="true"][@xml:lang="no-nb"][@xml:id="id6"][preceding-sibling::*[position() = 1]][following-sibling::phi[@xml:lang="en-US"][@xml:id="id7"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]/mu[contains(concat(@number,"$"),"lse$")][not(preceding-sibling::*)][not(child::node())][following-sibling::nu[@xml:lang="en-US"][@xml:id="id8"]//pi[not(following-sibling::*)]//pi[contains(@title,"t")][@xml:lang="no"][@xml:id="id9"][not(preceding-sibling::*)][not(following-sibling::*)]//alpha[not(preceding-sibling::*)]/gamma[contains(@name,"ntent")][not(child::node())][following-sibling::theta[@string][@xml:lang="en"][@xml:id="id10"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]/omega[not(following-sibling::*)]//alpha[contains(@src,"x gree")][@xml:lang="nb"]//delta[@xml:lang="en-US"][not(child::node())][following-sibling::upsilon[contains(@delete,"k")][@xml:lang="nb"][@xml:id="id11"][following-sibling::*[position()=1]][following-sibling::omicron[@xml:lang="en-GB"][@xml:id="id12"]/upsilon[starts-with(@delete,"this-is-att-")][@xml:lang="en-GB"][not(preceding-sibling::*)][not(following-sibling::*)]/kappa[@xml:id="id13"][following-sibling::*[position()=1]][following-sibling::omega[starts-with(concat(@class,"-"),"true-")][@xml:lang="no"][@xml:id="id14"][preceding-sibling::*[position() = 1]][not(following-sibling::*)][position() = 1]][position() = 1]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]][position() = 1]]</xpath>
<tree>
<eta xml:id="id1">
<gamma xml:lang="en" xml:id="id2">
<chi/>
<lambda xml:id="id3"/>
<xi delete="this-is-att-value">
<psi desciption="attribute" xml:lang="en-US" xml:id="id4">
<tau xml:id="id5"/>
<omega content="true" xml:lang="no-nb" xml:id="id6"/>
<phi xml:lang="en-US" xml:id="id7">
<mu number="false"/>
<nu xml:lang="en-US" xml:id="id8">
<pi>
<pi title="content" xml:lang="no" xml:id="id9">
<alpha>
<gamma name="content"/>
<theta string="solid 1px green" xml:lang="en" xml:id="id10">
<omega>
<alpha src="solid 1px green" xml:lang="nb">
<delta xml:lang="en-US"/>
<upsilon delete="_blank" xml:lang="nb" xml:id="id11"/>
<omicron xml:lang="en-GB" xml:id="id12">
<upsilon delete="this-is-att-value" xml:lang="en-GB">
<kappa xml:id="id13"/>
<omega class="true" xml:lang="no" xml:id="id14">
<green>This text must be green</green>
</omega>
</upsilon>
</omicron>
</alpha>
</omega>
</theta>
</alpha>
</pi>
</pi>
</nu>
</phi>
</psi>
</xi>
</gamma>
</eta>
</tree>
</test>
<test>
<xpath>//pi[@xml:id="id1"]/zeta[contains(concat(@and,"$"),"n$")][@xml:lang="no-nb"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::*[position()=5]][following-sibling::gamma[@xml:lang="en-US"][@xml:id="id3"][not(child::node())][following-sibling::psi[@xml:lang="en"][not(child::node())][following-sibling::iota[@xml:id="id4"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::zeta[starts-with(@number,"attr")][@xml:lang="en-GB"][following-sibling::*[position()=1]][following-sibling::beta[@xml:lang="en"][preceding-sibling::*[position() = 5]][not(following-sibling::*)]//gamma[@xml:lang="en"][not(preceding-sibling::*)][not(child::node())][following-sibling::omega[contains(concat(@attrib,"$"),"3456789$")][@xml:id="id5"][preceding-sibling::*[position() = 1]]//omega[starts-with(@content,"c")][@xml:id="id6"][not(preceding-sibling::*)][not(following-sibling::*)]/upsilon[@xml:lang="no-nb"][@xml:id="id7"][not(preceding-sibling::*)][not(following-sibling::*)]/gamma[starts-with(@attribute,"att")][@xml:lang="nb"]][position() = 1]][position() = 1]]]][position() = 1]]</xpath>
<tree>
<pi xml:id="id1">
<zeta and="solid 1px green" xml:lang="no-nb" xml:id="id2"/>
<gamma xml:lang="en-US" xml:id="id3"/>
<psi xml:lang="en"/>
<iota xml:id="id4"/>
<zeta number="attribute" xml:lang="en-GB"/>
<beta xml:lang="en">
<gamma xml:lang="en"/>
<omega attrib="123456789" xml:id="id5">
<omega content="content" xml:id="id6">
<upsilon xml:lang="no-nb" xml:id="id7">
<gamma attribute="attribute-value" xml:lang="nb">
<green>This text must be green</green>
</gamma>
</upsilon>
</omega>
</omega>
</beta>
</pi>
</tree>
</test>
<test>
<xpath>//nu[@xml:id="id1"]/chi[contains(concat(@class,"$"),"k$")][@xml:lang="no"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::*[position()=1]][not(child::node())][following-sibling::*[preceding-sibling::*[position() = 1]][not(following-sibling::*)]/mu[@xml:lang="nb"][not(preceding-sibling::*)]/mu[contains(@number,"ute")][@xml:lang="en-US"][not(following-sibling::*)]/kappa[@xml:lang="en-US"][not(preceding-sibling::*)][not(child::node())][following-sibling::gamma[starts-with(concat(@number,"-"),"attribute value-")][@xml:lang="en"][@xml:id="id3"][preceding-sibling::*[position() = 1]]/iota[starts-with(concat(@number,"-"),"true-")][following-sibling::rho[@xml:lang="en-GB"][@xml:id="id4"][following-sibling::upsilon[@xml:id="id5"][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<tree>
<nu xml:id="id1">
<chi class="_blank" xml:lang="no" xml:id="id2"/>
<any>
<mu xml:lang="nb">
<mu number="attribute" xml:lang="en-US">
<kappa xml:lang="en-US"/>
<gamma number="attribute value" xml:lang="en" xml:id="id3">
<iota number="true"/>
<rho xml:lang="en-GB" xml:id="id4"/>
<upsilon xml:id="id5">
<green>This text must be green</green>
</upsilon>
</gamma>
</mu>
</mu>
</any>
</nu>
</tree>
</test>
<test>
<xpath>//delta[starts-with(concat(@attribute,"-"),"true-")][@xml:id="id1"]/chi[starts-with(concat(@or,"-"),"this.nodeValue-")][@xml:lang="nb"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::*[position()=2]][not(child::node())][following-sibling::theta[@xml:lang="en-US"][preceding-sibling::*[position() = 1]][following-sibling::nu[@xml:lang="no-nb"][@xml:id="id3"][preceding-sibling::*[position() = 2]]//beta[@content][@xml:id="id4"]//upsilon[@delete][@xml:id="id5"][not(following-sibling::*)]/rho[contains(@desciption,"tru")][@xml:lang="nb"][@xml:id="id6"][not(following-sibling::*)]//nu[@xml:lang="no-nb"][not(preceding-sibling::*)][following-sibling::pi[@title][@xml:id="id7"][preceding-sibling::*[position() = 1]][following-sibling::omicron[@xml:lang="en-US"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::rho[@xml:lang="no-nb"][@xml:id="id8"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::omega[starts-with(@number,"123")][@xml:lang="no-nb"][@xml:id="id9"][following-sibling::*[position()=1]][not(child::node())][following-sibling::upsilon[@xml:lang="no-nb"][@xml:id="id10"]/sigma[@xml:lang="en-US"][@xml:id="id11"][following-sibling::omicron[@xml:lang="nb"][@xml:id="id12"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::tau[starts-with(concat(@or,"-"),"123456789-")][@xml:id="id13"][preceding-sibling::*[position() = 2]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]][position() = 1]]]]</xpath>
<tree>
<delta attribute="true" xml:id="id1">
<chi or="this.nodeValue" xml:lang="nb" xml:id="id2"/>
<theta xml:lang="en-US"/>
<nu xml:lang="no-nb" xml:id="id3">
<beta content="attribute-value" xml:id="id4">
<upsilon delete="100%" xml:id="id5">
<rho desciption="true" xml:lang="nb" xml:id="id6">
<nu xml:lang="no-nb"/>
<pi title="false" xml:id="id7"/>
<omicron xml:lang="en-US"/>
<rho xml:lang="no-nb" xml:id="id8"/>
<omega number="123456789" xml:lang="no-nb" xml:id="id9"/>
<upsilon xml:lang="no-nb" xml:id="id10">
<sigma xml:lang="en-US" xml:id="id11"/>
<omicron xml:lang="nb" xml:id="id12"/>
<tau or="123456789" xml:id="id13">
<green>This text must be green</green>
</tau>
</upsilon>
</rho>
</upsilon>
</beta>
</nu>
</delta>
</tree>
</test>
<test>
<xpath>//epsilon[@object="attribute"][@xml:id="id1"]/mu[starts-with(@att,"1")][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]/phi[@xml:id="id3"][not(preceding-sibling::*)][following-sibling::*[position()=1]][not(child::node())][following-sibling::phi[@xml:id="id4"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//nu//lambda[@xml:lang="no"][@xml:id="id5"][not(preceding-sibling::*)][not(child::node())][following-sibling::tau[@attrib][@xml:lang="en-GB"][@xml:id="id6"][following-sibling::*[position()=3]][following-sibling::omicron[starts-with(concat(@title,"-"),"_blank-")][@xml:lang="en-US"][preceding-sibling::*[position() = 2]][not(following-sibling::omicron)][not(child::node())][following-sibling::upsilon[starts-with(concat(@number,"-"),"_blank-")][@xml:lang="en"][not(child::node())][following-sibling::iota[starts-with(concat(@delete,"-"),"100%-")][@xml:lang="no-nb"][@xml:id="id7"]/psi[not(following-sibling::*)]//iota[starts-with(@att,"this-is-att-valu")][@xml:id="id8"][position() = 1]]]]][position() = 1]]</xpath>
<tree>
<epsilon object="attribute" xml:id="id1">
<mu att="100%" xml:id="id2">
<phi xml:id="id3"/>
<phi xml:id="id4">
<nu>
<lambda xml:lang="no" xml:id="id5"/>
<tau attrib="true" xml:lang="en-GB" xml:id="id6"/>
<omicron title="_blank" xml:lang="en-US"/>
<upsilon number="_blank" xml:lang="en"/>
<iota delete="100%" xml:lang="no-nb" xml:id="id7">
<psi>
<iota att="this-is-att-value" xml:id="id8">
<green>This text must be green</green>
</iota>
</psi>
</iota>
</nu>
</phi>
</mu>
</epsilon>
</tree>
</test>
<test>
<xpath>//omicron[starts-with(concat(@title,"-"),"content-")][@xml:id="id1"]/zeta[starts-with(concat(@att,"-"),"content-")][@xml:lang="en"]/psi[@att][@xml:lang="no"][not(following-sibling::*)][not(preceding-sibling::psi)]/xi[@or="attribute value"][not(child::node())][following-sibling::upsilon[not(following-sibling::*)]//alpha[@xml:lang="en-GB"][not(preceding-sibling::*)][following-sibling::xi[contains(@false,"fa")][@xml:lang="en"][following-sibling::*[position()=4]][following-sibling::xi[@xml:lang="en-GB"][preceding-sibling::*[position() = 2]][following-sibling::iota[contains(concat(@object,"$")," attribute value$")][@xml:id="id2"][following-sibling::lambda[starts-with(concat(@title,"-"),"this-")][@xml:lang="no-nb"][@xml:id="id3"][not(child::node())][following-sibling::omicron[@xml:lang="en"][preceding-sibling::*[position() = 5]]/alpha[@data="123456789"][@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)]/rho[@data="solid 1px green"][@xml:lang="en-GB"]//delta[following-sibling::*[position()=1]][following-sibling::lambda[starts-with(concat(@desciption,"-"),"this.nodeValue-")][@xml:lang="en-US"]/sigma[starts-with(@name,"12")][@xml:lang="en-GB"]/phi[contains(concat(@attrib,"$"),"100%$")]//zeta[@xml:lang="en-GB"][not(following-sibling::*)][position() = 1]]][position() = 1]]]][position() = 1]][position() = 1]]</xpath>
<tree>
<omicron title="content" xml:id="id1">
<zeta att="content" xml:lang="en">
<psi att="solid 1px green" xml:lang="no">
<xi or="attribute value"/>
<upsilon>
<alpha xml:lang="en-GB"/>
<xi false="false" xml:lang="en"/>
<xi xml:lang="en-GB"/>
<iota object="another attribute value" xml:id="id2"/>
<lambda title="this-is-att-value" xml:lang="no-nb" xml:id="id3"/>
<omicron xml:lang="en">
<alpha data="123456789" xml:id="id4">
<rho data="solid 1px green" xml:lang="en-GB">
<delta/>
<lambda desciption="this.nodeValue" xml:lang="en-US">
<sigma name="123456789" xml:lang="en-GB">
<phi attrib="100%">
<zeta xml:lang="en-GB">
<green>This text must be green</green>
</zeta>
</phi>
</sigma>
</lambda>
</rho>
</alpha>
</omicron>
</upsilon>
</psi>
</zeta>
</omicron>
</tree>
</test>
<test>
<xpath>//chi[starts-with(concat(@object,"-"),"solid 1px green-")][@xml:lang="en-US"]/xi[contains(@string,"onte")][@xml:lang="nb"][not(preceding-sibling::*)][following-sibling::iota[@insert="true"][preceding-sibling::*[position() = 1]]/mu[@number="another attribute value"][@xml:lang="nb"][not(child::node())][following-sibling::omicron[@or="this-is-att-value"][@xml:lang="no-nb"][@xml:id="id1"][preceding-sibling::*[position() = 1]]/eta[contains(@desciption,"deValue")][not(preceding-sibling::*)][not(child::node())][following-sibling::upsilon[preceding-sibling::*[position() = 1]]/upsilon[not(preceding-sibling::*)][following-sibling::*[position()=1]][not(child::node())][following-sibling::epsilon[@data="solid 1px green"][@xml:lang="en-GB"][@xml:id="id2"][preceding-sibling::*[position() = 1]]/*[@xml:lang="en-GB"][@xml:id="id3"][not(child::node())][following-sibling::lambda[starts-with(@attr,"1234")][@xml:lang="no"][@xml:id="id4"][preceding-sibling::*[position() = 1]]//zeta[starts-with(concat(@string,"-"),"content-")][not(preceding-sibling::*)][not(following-sibling::*)]][position() = 1]][position() = 1]][position() = 1]][position() = 1]]</xpath>
<tree>
<chi object="solid 1px green" xml:lang="en-US">
<xi string="content" xml:lang="nb"/>
<iota insert="true">
<mu number="another attribute value" xml:lang="nb"/>
<omicron or="this-is-att-value" xml:lang="no-nb" xml:id="id1">
<eta desciption="this.nodeValue"/>
<upsilon>
<upsilon/>
<epsilon data="solid 1px green" xml:lang="en-GB" xml:id="id2">
<any xml:lang="en-GB" xml:id="id3"/>
<lambda attr="123456789" xml:lang="no" xml:id="id4">
<zeta string="content">
<green>This text must be green</green>
</zeta>
</lambda>
</epsilon>
</upsilon>
</omicron>
</iota>
</chi>
</tree>
</test>
<test>
<xpath>//epsilon[@data="true"]//lambda[starts-with(@attrib,"false")][@xml:lang="nb"][following-sibling::*[@xml:lang="no"][not(following-sibling::*)]/eta[contains(concat(@delete,"$"),"ribute value$")][@xml:lang="en-US"][@xml:id="id1"]/xi[@title][not(preceding-sibling::*)][not(child::node())][following-sibling::upsilon[@xml:lang="no-nb"][@xml:id="id2"]//omicron[@xml:id="id3"][not(preceding-sibling::*)][not(child::node())][following-sibling::xi[@false="this.nodeValue"][following-sibling::mu[not(child::node())][following-sibling::*[starts-with(concat(@false,"-"),"another attribute value-")][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::beta[starts-with(@content,"so")][following-sibling::*[position()=1]][not(child::node())][following-sibling::alpha[@att][@xml:id="id4"][not(following-sibling::*)][position() = 1]]][position() = 1]]]]]]</xpath>
<tree>
<epsilon data="true">
<lambda attrib="false" xml:lang="nb"/>
<any xml:lang="no">
<eta delete="another attribute value" xml:lang="en-US" xml:id="id1">
<xi title="false"/>
<upsilon xml:lang="no-nb" xml:id="id2">
<omicron xml:id="id3"/>
<xi false="this.nodeValue"/>
<mu/>
<any false="another attribute value"/>
<beta content="solid 1px green"/>
<alpha att="123456789" xml:id="id4">
<green>This text must be green</green>
</alpha>
</upsilon>
</eta>
</any>
</epsilon>
</tree>
</test>
<test>
<xpath>//rho[@xml:lang="en"][@xml:id="id1"]/*[@xml:lang="en-US"][@xml:id="id2"][not(following-sibling::*)]/omega[@xml:lang="nb"][not(preceding-sibling::*)][not(following-sibling::*)]//tau[starts-with(@data,"thi")][not(preceding-sibling::*)][not(following-sibling::*)]//epsilon[@xml:lang="en-US"][not(preceding-sibling::*)][not(child::node())][following-sibling::eta[@false][following-sibling::*[position()=1]][not(preceding-sibling::eta)][following-sibling::theta[@xml:lang="no"][@xml:id="id3"][preceding-sibling::*[position() = 2]]/iota[not(preceding-sibling::*)]//epsilon[@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)][position() = 1]][position() = 1]]</xpath>
<tree>
<rho xml:lang="en" xml:id="id1">
<any xml:lang="en-US" xml:id="id2">
<omega xml:lang="nb">
<tau data="this-is-att-value">
<epsilon xml:lang="en-US"/>
<eta false="this-is-att-value"/>
<theta xml:lang="no" xml:id="id3">
<iota>
<epsilon xml:id="id4">
<green>This text must be green</green>
</epsilon>
</iota>
</theta>
</tau>
</omega>
</any>
</rho>
</tree>
</test>
<test>
<xpath>//eta[contains(@token,"bla")][@xml:lang="no"][@xml:id="id1"]/tau[@attribute="another attribute value"][@xml:lang="no-nb"][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]//kappa[@abort="this-is-att-value"][@xml:lang="en-US"][not(child::node())][following-sibling::delta[starts-with(concat(@title,"-"),"this.nodeValue-")][@xml:lang="nb"][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//*[@token][@xml:lang="no-nb"][@xml:id="id4"][following-sibling::*[position()=4]][not(child::node())][following-sibling::theta[@xml:lang="en"][@xml:id="id5"][following-sibling::*[position()=3]][following-sibling::xi[@xml:lang="no"][@xml:id="id6"][following-sibling::beta[@xml:lang="no"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::kappa[contains(concat(@desciption,"$"),"alse$")][@xml:id="id7"][not(following-sibling::*)]/kappa[not(following-sibling::*)]//theta[@xml:id="id8"][not(child::node())][following-sibling::omicron[@data][following-sibling::psi[@xml:lang="nb"][not(following-sibling::*)]//rho[contains(@token,"t")][@xml:lang="nb"][not(following-sibling::*)][not(preceding-sibling::rho)]//omega[@xml:lang="en-GB"][@xml:id="id9"][not(following-sibling::*)]/eta[starts-with(@false,"t")][@xml:lang="en-GB"]/eta[@xml:lang="en-US"][@xml:id="id10"][not(preceding-sibling::*)]//omicron[@xml:id="id11"][not(preceding-sibling::*)][not(following-sibling::*)]][position() = 1]]][position() = 1]][position() = 1]]][position() = 1]]</xpath>
<tree>
<eta token="_blank" xml:lang="no" xml:id="id1">
<tau attribute="another attribute value" xml:lang="no-nb" xml:id="id2">
<kappa abort="this-is-att-value" xml:lang="en-US"/>
<delta title="this.nodeValue" xml:lang="nb" xml:id="id3">
<any token="content" xml:lang="no-nb" xml:id="id4"/>
<theta xml:lang="en" xml:id="id5"/>
<xi xml:lang="no" xml:id="id6"/>
<beta xml:lang="no"/>
<kappa desciption="false" xml:id="id7">
<kappa>
<theta xml:id="id8"/>
<omicron data="_blank"/>
<psi xml:lang="nb">
<rho token="true" xml:lang="nb">
<omega xml:lang="en-GB" xml:id="id9">
<eta false="true" xml:lang="en-GB">
<eta xml:lang="en-US" xml:id="id10">
<omicron xml:id="id11">
<green>This text must be green</green>
</omicron>
</eta>
</eta>
</omega>
</rho>
</psi>
</kappa>
</kappa>
</delta>
</tau>
</eta>
</tree>
</test>
<test>
<xpath>//chi[@attrib="content"][@xml:id="id1"]/nu[@xml:lang="no"][@xml:id="id2"][not(preceding-sibling::*)][following-sibling::gamma[@xml:lang="nb"][@xml:id="id3"][following-sibling::*[position()=1]][not(child::node())][following-sibling::sigma[@xml:id="id4"]//beta[@xml:lang="en-GB"][not(preceding-sibling::*)][following-sibling::lambda[contains(concat(@name,"$"),"his-is-att-value$")][@xml:lang="en-US"][@xml:id="id5"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::sigma[contains(concat(@att,"$"),"deValue$")][@xml:lang="no"][@xml:id="id6"][preceding-sibling::*[position() = 2]][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<tree>
<chi attrib="content" xml:id="id1">
<nu xml:lang="no" xml:id="id2"/>
<gamma xml:lang="nb" xml:id="id3"/>
<sigma xml:id="id4">
<beta xml:lang="en-GB"/>
<lambda name="this-is-att-value" xml:lang="en-US" xml:id="id5"/>
<sigma att="this.nodeValue" xml:lang="no" xml:id="id6">
<green>This text must be green</green>
</sigma>
</sigma>
</chi>
</tree>
</test>
<test>
<xpath>//lambda[@xml:lang="en-US"][@xml:id="id1"]//omega[@xml:lang="no"][@xml:id="id2"]//*[@xml:lang="en-GB"][@xml:id="id3"][not(following-sibling::*)]//sigma[@name][@xml:lang="en"][@xml:id="id4"][not(following-sibling::*)]/pi[starts-with(@token,"attribute-va")][@xml:lang="no-nb"][not(preceding-sibling::*)]/epsilon[@xml:lang="en"][not(preceding-sibling::*)][following-sibling::*[position()=3]][not(child::node())][following-sibling::sigma[@true][@xml:id="id5"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=2]][not(child::node())][following-sibling::theta[starts-with(@attr,"_bla")][@xml:lang="nb"][preceding-sibling::*[position() = 2]][following-sibling::theta[@xml:lang="en"][@xml:id="id6"]//eta[@name][@xml:lang="en"][@xml:id="id7"][not(preceding-sibling::*)][not(child::node())][following-sibling::lambda[@name][@xml:lang="nb"][following-sibling::*[position()=3]][following-sibling::eta[@title][@xml:lang="nb"][preceding-sibling::*[position() = 2]][following-sibling::*[position()=2]][following-sibling::lambda[@xml:id="id8"][preceding-sibling::*[position() = 3]][following-sibling::pi[@xml:id="id9"][preceding-sibling::*[position() = 4]][not(following-sibling::*)]/omicron[not(preceding-sibling::*)][not(following-sibling::*)]//psi[@xml:lang="no-nb"][following-sibling::delta[@xml:lang="no-nb"][@xml:id="id10"][not(child::node())][following-sibling::sigma[@xml:lang="en-GB"][preceding-sibling::*[position() = 2]][position() = 1]][position() = 1]]]]][position() = 1]]]]]</xpath>
<tree>
<lambda xml:lang="en-US" xml:id="id1">
<omega xml:lang="no" xml:id="id2">
<any xml:lang="en-GB" xml:id="id3">
<sigma name="attribute-value" xml:lang="en" xml:id="id4">
<pi token="attribute-value" xml:lang="no-nb">
<epsilon xml:lang="en"/>
<sigma true="100%" xml:id="id5"/>
<theta attr="_blank" xml:lang="nb"/>
<theta xml:lang="en" xml:id="id6">
<eta name="attribute" xml:lang="en" xml:id="id7"/>
<lambda name="123456789" xml:lang="nb"/>
<eta title="solid 1px green" xml:lang="nb"/>
<lambda xml:id="id8"/>
<pi xml:id="id9">
<omicron>
<psi xml:lang="no-nb"/>
<delta xml:lang="no-nb" xml:id="id10"/>
<sigma xml:lang="en-GB">
<green>This text must be green</green>
</sigma>
</omicron>
</pi>
</theta>
</pi>
</sigma>
</any>
</omega>
</lambda>
</tree>
</test>
<test>
<xpath>//eta[contains(@attrib,"lue")][@xml:id="id1"]/phi[@data][@xml:lang="en-GB"][following-sibling::omicron[contains(@attribute,"-att-val")][not(following-sibling::*)]/kappa[contains(@data,"t")][not(preceding-sibling::*)][following-sibling::nu[@title][following-sibling::*[position()=3]][following-sibling::delta[@xml:id="id2"][not(preceding-sibling::delta)][following-sibling::*[@xml:id="id3"][preceding-sibling::*[position() = 3]][following-sibling::xi[starts-with(concat(@delete,"-"),"another attribute value-")][@xml:id="id4"][preceding-sibling::*[position() = 4]][not(following-sibling::*)]/theta[@xml:lang="en-GB"][@xml:id="id5"][not(preceding-sibling::*)][not(following-sibling::*)]/rho[contains(@att,"tribu")][@xml:lang="no"][@xml:id="id6"][following-sibling::omicron[preceding-sibling::*[position() = 1]][not(following-sibling::*)]//psi[@content][@xml:lang="nb"][@xml:id="id7"][not(preceding-sibling::*)][not(following-sibling::*)]/sigma[@number][@xml:lang="nb"][@xml:id="id8"][not(preceding-sibling::*)]][position() = 1]]]]][position() = 1]]</xpath>
<tree>
<eta attrib="this-is-att-value" xml:id="id1">
<phi data="true" xml:lang="en-GB"/>
<omicron attribute="this-is-att-value">
<kappa data="content"/>
<nu title="_blank"/>
<delta xml:id="id2"/>
<any xml:id="id3"/>
<xi delete="another attribute value" xml:id="id4">
<theta xml:lang="en-GB" xml:id="id5">
<rho att="another attribute value" xml:lang="no" xml:id="id6"/>
<omicron>
<psi content="123456789" xml:lang="nb" xml:id="id7">
<sigma number="false" xml:lang="nb" xml:id="id8">
<green>This text must be green</green>
</sigma>
</psi>
</omicron>
</theta>
</xi>
</omicron>
</eta>
</tree>
</test>
<test>
<xpath>//beta[@xml:lang="no-nb"][@xml:id="id1"]//tau[@xml:lang="nb"][@xml:id="id2"][not(child::node())][following-sibling::psi[@xml:id="id3"][preceding-sibling::*[position() = 1]]//xi[contains(concat(@false,"$"),"alse$")][@xml:id="id4"][following-sibling::kappa[preceding-sibling::*[position() = 1]][not(following-sibling::*)]//lambda[not(preceding-sibling::*)]/alpha[@xml:id="id5"]/phi[@att][not(preceding-sibling::*)][not(child::node())][following-sibling::gamma[preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][following-sibling::upsilon[@and][@xml:id="id6"][preceding-sibling::*[position() = 2]][not(following-sibling::*)]//omega[@xml:lang="no"][@xml:id="id7"][not(preceding-sibling::*)][position() = 1]][position() = 1]]]]</xpath>
<tree>
<beta xml:lang="no-nb" xml:id="id1">
<tau xml:lang="nb" xml:id="id2"/>
<psi xml:id="id3">
<xi false="false" xml:id="id4"/>
<kappa>
<lambda>
<alpha xml:id="id5">
<phi att="_blank"/>
<gamma/>
<upsilon and="this.nodeValue" xml:id="id6">
<omega xml:lang="no" xml:id="id7">
<green>This text must be green</green>
</omega>
</upsilon>
</alpha>
</lambda>
</kappa>
</psi>
</beta>
</tree>
</test>
<test>
<xpath>//mu[@class]//pi[starts-with(concat(@delete,"-"),"true-")][not(following-sibling::*)]/omicron[contains(concat(@insert,"$"),"456789$")][@xml:lang="en-GB"][not(child::node())][following-sibling::lambda[@object][@xml:lang="no-nb"][@xml:id="id1"][preceding-sibling::*[position() = 1]]/delta[@or="_blank"][not(preceding-sibling::*)][not(following-sibling::*)]//zeta[starts-with(concat(@true,"-"),"100%-")][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]//tau[contains(@name,"ttribut")][@xml:lang="nb"][@xml:id="id3"][not(preceding-sibling::*)]/kappa[contains(concat(@token,"$"),"attribute$")][@xml:lang="no-nb"][not(following-sibling::*)]/pi[@false][@xml:id="id4"][following-sibling::phi[@and][@xml:id="id5"][not(following-sibling::*)]/rho[starts-with(concat(@false,"-"),"attribute-")][not(preceding-sibling::*)][not(child::node())][following-sibling::gamma[@xml:id="id6"][not(following-sibling::*)]//lambda[@xml:id="id7"][not(preceding-sibling::*)][not(following-sibling::*)]/phi[@name][@xml:lang="nb"][@xml:id="id8"][following-sibling::*[position()=3]][not(child::node())][following-sibling::lambda[@xml:lang="en"][@xml:id="id9"][not(child::node())][following-sibling::alpha[starts-with(@delete,"a")][@xml:lang="en"][following-sibling::*[position()=1]][following-sibling::xi[@xml:lang="no"][@xml:id="id10"][not(following-sibling::*)]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]</xpath>
<tree>
<mu class="attribute-value">
<pi delete="true">
<omicron insert="123456789" xml:lang="en-GB"/>
<lambda object="false" xml:lang="no-nb" xml:id="id1">
<delta or="_blank">
<zeta true="100%" xml:id="id2">
<tau name="attribute value" xml:lang="nb" xml:id="id3">
<kappa token="attribute" xml:lang="no-nb">
<pi false="solid 1px green" xml:id="id4"/>
<phi and="attribute" xml:id="id5">
<rho false="attribute"/>
<gamma xml:id="id6">
<lambda xml:id="id7">
<phi name="attribute-value" xml:lang="nb" xml:id="id8"/>
<lambda xml:lang="en" xml:id="id9"/>
<alpha delete="attribute value" xml:lang="en"/>
<xi xml:lang="no" xml:id="id10">
<green>This text must be green</green>
</xi>
</lambda>
</gamma>
</phi>
</kappa>
</tau>
</zeta>
</delta>
</lambda>
</pi>
</mu>
</tree>
</test>
<test>
<xpath>//nu[@attribute][@xml:lang="en"]//xi[contains(@object,"e")][@xml:lang="no"][@xml:id="id1"][following-sibling::*[position()=5]][not(child::node())][following-sibling::psi[@xml:lang="nb"][@xml:id="id2"][preceding-sibling::*[position() = 1]][following-sibling::pi[@xml:lang="en-US"][@xml:id="id3"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::omega[starts-with(@name,"false")][@xml:lang="en-GB"][preceding-sibling::*[position() = 3]][following-sibling::upsilon[@xml:lang="nb"][@xml:id="id4"][following-sibling::sigma[@true][@xml:lang="en-US"][@xml:id="id5"][not(following-sibling::*)]/xi[@src][@xml:lang="no"][@xml:id="id6"][not(following-sibling::*)]//*[@attrib][@xml:id="id7"][not(child::node())][following-sibling::psi[starts-with(@attribute,"tr")][@xml:lang="en-GB"][@xml:id="id8"][not(following-sibling::*)]/rho[@xml:id="id9"]/omicron[@desciption][@xml:lang="en"][not(preceding-sibling::omicron)][following-sibling::xi[not(following-sibling::*)]]][position() = 1]][position() = 1]]]][position() = 1]]</xpath>
<tree>
<nu attribute="_blank" xml:lang="en">
<xi object="attribute-value" xml:lang="no" xml:id="id1"/>
<psi xml:lang="nb" xml:id="id2"/>
<pi xml:lang="en-US" xml:id="id3"/>
<omega name="false" xml:lang="en-GB"/>
<upsilon xml:lang="nb" xml:id="id4"/>
<sigma true="true" xml:lang="en-US" xml:id="id5">
<xi src="true" xml:lang="no" xml:id="id6">
<any attrib="another attribute value" xml:id="id7"/>
<psi attribute="true" xml:lang="en-GB" xml:id="id8">
<rho xml:id="id9">
<omicron desciption="100%" xml:lang="en"/>
<xi>
<green>This text must be green</green>
</xi>
</rho>
</psi>
</xi>
</sigma>
</nu>
</tree>
</test>
<test>
<xpath>//chi[@xml:id="id1"]//gamma[@token][@xml:lang="no"][@xml:id="id2"][following-sibling::*[position()=3]][following-sibling::tau[@xml:lang="en-GB"][following-sibling::*[position()=2]][following-sibling::xi[@xml:id="id3"][not(child::node())][following-sibling::xi[@xml:id="id4"][preceding-sibling::*[position() = 3]][not(following-sibling::*)]//upsilon[@xml:id="id5"][not(preceding-sibling::*)]/omega[contains(concat(@true,"$"),"0%$")][@xml:lang="en-GB"][@xml:id="id6"][following-sibling::nu[preceding-sibling::*[position() = 1]][following-sibling::omega[@xml:lang="en"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::iota[@number="100%"][@xml:lang="en"][@xml:id="id7"][not(following-sibling::*)]/upsilon[@xml:lang="en-GB"][@xml:id="id8"][not(preceding-sibling::*)][not(following-sibling::*)]/beta[starts-with(@desciption,"t")][@xml:lang="en-US"][@xml:id="id9"]/*]][position() = 1]][position() = 1]]][position() = 1]]</xpath>
<tree>
<chi xml:id="id1">
<gamma token="attribute" xml:lang="no" xml:id="id2"/>
<tau xml:lang="en-GB"/>
<xi xml:id="id3"/>
<xi xml:id="id4">
<upsilon xml:id="id5">
<omega true="100%" xml:lang="en-GB" xml:id="id6"/>
<nu/>
<omega xml:lang="en"/>
<iota number="100%" xml:lang="en" xml:id="id7">
<upsilon xml:lang="en-GB" xml:id="id8">
<beta desciption="true" xml:lang="en-US" xml:id="id9">
<any>
<green>This text must be green</green>
</any>
</beta>
</upsilon>
</iota>
</upsilon>
</xi>
</chi>
</tree>
</test>
<test>
<xpath>//nu[@xml:lang="en"]//tau[contains(concat(@true,"$"),"attribute value$")][@xml:lang="no-nb"][not(preceding-sibling::*)][not(preceding-sibling::tau)]/omega[@false="attribute value"][@xml:lang="nb"][@xml:id="id1"][not(preceding-sibling::*)]//phi[@xml:lang="nb"][not(preceding-sibling::*)][following-sibling::*[position()=1]][following-sibling::rho[contains(concat(@att,"$"),"lank$")][not(following-sibling::*)]/eta[@xml:id="id2"][following-sibling::*[position()=3]][following-sibling::omicron[starts-with(concat(@att,"-"),"false-")][@xml:lang="en"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=2]][following-sibling::rho[@xml:id="id3"][following-sibling::delta[@xml:lang="en"][not(preceding-sibling::delta)]//omega[@xml:lang="en-US"][@xml:id="id4"][not(preceding-sibling::*)][not(following-sibling::*)]/rho/alpha[following-sibling::*[preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][following-sibling::sigma[@abort][@xml:id="id5"][not(following-sibling::*)]/omicron[@xml:id="id6"][not(preceding-sibling::*)][not(child::node())][following-sibling::phi[@xml:lang="en"][preceding-sibling::*[position() = 1]][following-sibling::chi[@xml:id="id7"][not(child::node())][following-sibling::iota[starts-with(concat(@true,"-"),"solid 1px green-")][@xml:id="id8"][preceding-sibling::*[position() = 3]][following-sibling::kappa[@xml:id="id9"]/nu[@and][@xml:id="id10"][not(preceding-sibling::*)][following-sibling::iota[@or][@xml:lang="en-US"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]//iota[@xml:lang="no"][following-sibling::gamma[@att="this.nodeValue"][@xml:lang="no"][preceding-sibling::*[position() = 1]][not(following-sibling::*)]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]][position() = 1]]]][position() = 1]][position() = 1]]]</xpath>
<tree>
<nu xml:lang="en">
<tau true="another attribute value" xml:lang="no-nb">
<omega false="attribute value" xml:lang="nb" xml:id="id1">
<phi xml:lang="nb"/>
<rho att="_blank">
<eta xml:id="id2"/>
<omicron att="false" xml:lang="en"/>
<rho xml:id="id3"/>
<delta xml:lang="en">
<omega xml:lang="en-US" xml:id="id4">
<rho>
<alpha/>
<any/>
<sigma abort="content" xml:id="id5">
<omicron xml:id="id6"/>
<phi xml:lang="en"/>
<chi xml:id="id7"/>
<iota true="solid 1px green" xml:id="id8"/>
<kappa xml:id="id9">
<nu and="_blank" xml:id="id10"/>
<iota or="false" xml:lang="en-US">
<iota xml:lang="no"/>
<gamma att="this.nodeValue" xml:lang="no">
<green>This text must be green</green>
</gamma>
</iota>
</kappa>
</sigma>
</rho>
</omega>
</delta>
</rho>
</omega>
</tau>
</nu>
</tree>
</test>
<test>
<xpath>//upsilon[contains(@insert,"true")][@xml:lang="no"]//delta[starts-with(concat(@and,"-"),"this.nodeValue-")][@xml:lang="en-GB"][@xml:id="id1"][not(preceding-sibling::*)][not(following-sibling::*)]//omicron[starts-with(concat(@string,"-"),"this.nodeValue-")][@xml:id="id2"][not(child::node())][following-sibling::iota[@desciption][@xml:id="id3"][not(child::node())][following-sibling::psi[@xml:lang="nb"][@xml:id="id4"][preceding-sibling::*[position() = 2]][not(child::node())][following-sibling::rho/zeta[@xml:id="id5"][not(child::node())][following-sibling::beta[@xml:id="id6"][preceding-sibling::*[position() = 1]][not(following-sibling::*)][position() = 1]][position() = 1]][position() = 1]]]</xpath>
<tree>
<upsilon insert="true" xml:lang="no">
<delta and="this.nodeValue" xml:lang="en-GB" xml:id="id1">
<omicron string="this.nodeValue" xml:id="id2"/>
<iota desciption="attribute value" xml:id="id3"/>
<psi xml:lang="nb" xml:id="id4"/>
<rho>
<zeta xml:id="id5"/>
<beta xml:id="id6">
<green>This text must be green</green>
</beta>
</rho>
</delta>
</upsilon>
</tree>
</test>
<test>
<xpath>//psi[@abort][@xml:lang="en"]/beta[starts-with(concat(@attribute,"-"),"123456789-")][@xml:id="id1"]/tau[@attr]/beta[@name][following-sibling::phi[contains(concat(@object,"$"),"lse$")][@xml:id="id2"][not(following-sibling::*)]/psi[starts-with(@abort,"f")][@xml:lang="en-GB"][not(preceding-sibling::*)][not(child::node())][following-sibling::omicron[@number][@xml:lang="en-US"]/rho[starts-with(concat(@desciption,"-"),"_blank-")][@xml:id="id3"]/omicron[@att][@xml:lang="nb"][@xml:id="id4"][position() = 1]][position() = 1]]</xpath>
<tree>
<psi abort="solid 1px green" xml:lang="en">
<beta attribute="123456789" xml:id="id1">
<tau attr="false">
<beta name="another attribute value"/>
<phi object="false" xml:id="id2">
<psi abort="false" xml:lang="en-GB"/>
<omicron number="another attribute value" xml:lang="en-US">
<rho desciption="_blank" xml:id="id3">
<omicron att="solid 1px green" xml:lang="nb" xml:id="id4">
<green>This text must be green</green>
</omicron>
</rho>
</omicron>
</phi>
</tau>
</beta>
</psi>
</tree>
</test>
<test>
<xpath>//lambda[contains(@src,"attribute-valu")][@xml:id="id1"]//upsilon[@xml:lang="en-US"][not(child::node())][following-sibling::nu[@xml:lang="no"][@xml:id="id2"][preceding-sibling::*[position() = 1]][not(preceding-sibling::nu or following-sibling::nu)][not(preceding-sibling::nu)][following-sibling::lambda[@data][@xml:id="id3"][not(following-sibling::*)]//theta[@string="attribute"][@xml:lang="en"][@xml:id="id4"][not(preceding-sibling::*)][not(child::node())][following-sibling::alpha[not(child::node())][following-sibling::pi[@xml:lang="en-US"][@xml:id="id5"][preceding-sibling::*[position() = 2]][following-sibling::*[position()=1]][not(child::node())][following-sibling::rho[@class="attribute"][@xml:lang="nb"][preceding-sibling::*[position() = 3]]/lambda[starts-with(concat(@title,"-"),"this.nodeValue-")][@xml:lang="no-nb"][@xml:id="id6"][not(child::node())][following-sibling::xi[preceding-sibling::*[position() = 1]][following-sibling::iota[@xml:lang="nb"][@xml:id="id7"][preceding-sibling::*[position() = 2]][following-sibling::phi[contains(@title,"ue")][@xml:lang="en"][following-sibling::*[position()=2]][not(child::node())][following-sibling::omicron[@attr="100%"][preceding-sibling::*[position() = 4]][not(child::node())][following-sibling::kappa[starts-with(@delete,"1234")][@xml:lang="no-nb"][not(following-sibling::*)]//gamma[@xml:lang="no"][not(preceding-sibling::*)][following-sibling::gamma[@xml:lang="no-nb"][@xml:id="id8"][following-sibling::sigma[@or][@xml:lang="nb"][preceding-sibling::*[position() = 2]][not(following-sibling::*)][position() = 1]]][position() = 1]][position() = 1]]]][position() = 1]]][position() = 1]][position() = 1]]]]</xpath>
<tree>
<lambda src="attribute-value" xml:id="id1">
<upsilon xml:lang="en-US"/>
<nu xml:lang="no" xml:id="id2"/>
<lambda data="_blank" xml:id="id3">
<theta string="attribute" xml:lang="en" xml:id="id4"/>
<alpha/>
<pi xml:lang="en-US" xml:id="id5"/>
<rho class="attribute" xml:lang="nb">
<lambda title="this.nodeValue" xml:lang="no-nb" xml:id="id6"/>
<xi/>
<iota xml:lang="nb" xml:id="id7"/>
<phi title="attribute-value" xml:lang="en"/>
<omicron attr="100%"/>
<kappa delete="123456789" xml:lang="no-nb">
<gamma xml:lang="no"/>
<gamma xml:lang="no-nb" xml:id="id8"/>
<sigma or="content" xml:lang="nb">
<green>This text must be green</green>
</sigma>
</kappa>
</rho>
</lambda>
</lambda>
</tree>
</test>
<test>
<xpath>//phi[@xml:id="id1"]//pi[@xml:lang="no"][@xml:id="id2"][not(following-sibling::*)]//phi[@xml:id="id3"][not(preceding-sibling::*)][following-sibling::upsilon[@xml:id="id4"][preceding-sibling::*[position() = 1]]/sigma[contains(concat(@delete,"$"),"x green$")][following-sibling::kappa[contains(@true,"ibute val")][@xml:id="id5"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::alpha[@title][position() = 1]]]]</xpath>
<tree>
<phi xml:id="id1">
<pi xml:lang="no" xml:id="id2">
<phi xml:id="id3"/>
<upsilon xml:id="id4">
<sigma delete="solid 1px green"/>
<kappa true="another attribute value" xml:id="id5"/>
<alpha title="attribute value">
<green>This text must be green</green>
</alpha>
</upsilon>
</pi>
</phi>
</tree>
</test>
<test>
<xpath>//omicron[@src="this-is-att-value"][@xml:lang="no"]/upsilon[@and="attribute-value"][@xml:lang="no"][not(preceding-sibling::*)][following-sibling::*[position()=1]][not(child::node())][following-sibling::iota[contains(concat(@or,"$"),"nodeValue$")][@xml:id="id1"][not(following-sibling::*)]/pi[@attrib][@xml:id="id2"][not(preceding-sibling::*)][not(child::node())][following-sibling::alpha[@xml:lang="no"][@xml:id="id3"][following-sibling::*[position()=2]][not(child::node())][following-sibling::chi[@xml:id="id4"][not(child::node())][following-sibling::delta[@attr][@xml:lang="nb"]//mu[not(preceding-sibling::*)][not(following-sibling::*)]//*[@insert="123456789"][@xml:lang="nb"][@xml:id="id5"][not(child::node())][following-sibling::lambda[@xml:lang="en-GB"][@xml:id="id6"][not(following-sibling::*)][not(preceding-sibling::lambda)]/chi[@xml:lang="no-nb"][not(preceding-sibling::*)]//nu[@xml:lang="en"][@xml:id="id7"][not(preceding-sibling::*)]][position() = 1]]][position() = 1]]]</xpath>
<tree>
<omicron src="this-is-att-value" xml:lang="no">
<upsilon and="attribute-value" xml:lang="no"/>
<iota or="this.nodeValue" xml:id="id1">
<pi attrib="attribute value" xml:id="id2"/>
<alpha xml:lang="no" xml:id="id3"/>
<chi xml:id="id4"/>
<delta attr="attribute value" xml:lang="nb">
<mu>
<any insert="123456789" xml:lang="nb" xml:id="id5"/>
<lambda xml:lang="en-GB" xml:id="id6">
<chi xml:lang="no-nb">
<nu xml:lang="en" xml:id="id7">
<green>This text must be green</green>
</nu>
</chi>
</lambda>
</mu>
</delta>
</iota>
</omicron>
</tree>
</test>
<test>
<xpath>//iota[contains(concat(@src,"$"),"e$")][@xml:lang="no"][@xml:id="id1"]//omicron[@xml:id="id2"][not(child::node())][following-sibling::nu[contains(@number,"lid 1px gre")][@xml:id="id3"][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::mu[@xml:id="id4"][not(child::node())][following-sibling::gamma[preceding-sibling::*[position() = 3]]/pi[starts-with(@desciption,"another attribute va")][@xml:id="id5"]//omega[@false][not(preceding-sibling::*)][position() = 1]][position() = 1]][position() = 1]]</xpath>
<tree>
<iota src="true" xml:lang="no" xml:id="id1">
<omicron xml:id="id2"/>
<nu number="solid 1px green" xml:id="id3"/>
<mu xml:id="id4"/>
<gamma>
<pi desciption="another attribute value" xml:id="id5">
<omega false="123456789">
<green>This text must be green</green>
</omega>
</pi>
</gamma>
</iota>
</tree>
</test>
<test>
<xpath>//kappa[@xml:lang="no"]/nu[contains(concat(@class,"$"),"ontent$")][@xml:lang="en"][@xml:id="id1"][not(preceding-sibling::*)][not(child::node())][following-sibling::xi[not(child::node())][following-sibling::delta[@xml:id="id2"][preceding-sibling::*[position() = 2]][not(preceding-sibling::delta)][following-sibling::theta[@xml:id="id3"][preceding-sibling::*[position() = 3]]//omicron[@desciption][not(preceding-sibling::*)][not(following-sibling::*)]/beta[starts-with(@content,"fa")][not(child::node())][following-sibling::kappa[@xml:lang="no-nb"][not(child::node())][following-sibling::tau[contains(@delete,"value")][@xml:id="id4"][preceding-sibling::*[position() = 2]][following-sibling::tau[@xml:lang="nb"][@xml:id="id5"]//iota[not(preceding-sibling::*)]/omicron[contains(@and,"ue")][@xml:lang="no"][@xml:id="id6"]/mu[contains(concat(@insert,"$"),"lue$")][@xml:id="id7"][not(preceding-sibling::*)]/phi[contains(@desciption,"0%")][@xml:lang="nb"][@xml:id="id8"][not(preceding-sibling::*)][following-sibling::gamma[@xml:lang="en-US"][preceding-sibling::*[position() = 1]]/omega[@xml:lang="no"][@xml:id="id9"][following-sibling::epsilon[@attr][@xml:lang="nb"][@xml:id="id10"][preceding-sibling::*[position() = 1]]//tau[@xml:lang="nb"][@xml:id="id11"][not(preceding-sibling::*)][not(following-sibling::*)]/psi[starts-with(concat(@false,"-"),"123456789-")][@xml:lang="en-US"][not(preceding-sibling::*)]/rho[not(child::node())][following-sibling::zeta[contains(concat(@true,"$"),"en$")][@xml:id="id12"][preceding-sibling::*[position() = 1]][following-sibling::*[position()=1]][not(child::node())][following-sibling::delta[starts-with(@attr,"solid 1px")][@xml:id="id13"][preceding-sibling::*[position() = 2]]//xi[@xml:lang="no-nb"][@xml:id="id14"][not(following-sibling::*)]/phi[not(preceding-sibling::*)]]][position() = 1]]][position() = 1]][position() = 1]][position() = 1]]][position() = 1]]]</xpath>
<tree>
<kappa xml:lang="no">
<nu class="content" xml:lang="en" xml:id="id1"/>
<xi/>
<delta xml:id="id2"/>
<theta xml:id="id3">
<omicron desciption="100%">
<beta content="false"/>
<kappa xml:lang="no-nb"/>
<tau delete="this-is-att-value" xml:id="id4"/>
<tau xml:lang="nb" xml:id="id5">
<iota>
<omicron and="attribute-value" xml:lang="no" xml:id="id6">
<mu insert="this.nodeValue" xml:id="id7">
<phi desciption="100%" xml:lang="nb" xml:id="id8"/>
<gamma xml:lang="en-US">
<omega xml:lang="no" xml:id="id9"/>
<epsilon attr="attribute value" xml:lang="nb" xml:id="id10">
<tau xml:lang="nb" xml:id="id11">
<psi false="123456789" xml:lang="en-US">
<rho/>
<zeta true="solid 1px green" xml:id="id12"/>
<delta attr="solid 1px green" xml:id="id13">
<xi xml:lang="no-nb" xml:id="id14">
<phi>
<green>This text must be green</green>
</phi>
</xi>
</delta>
</psi>
</tau>
</epsilon>
</gamma>
</mu>
</omicron>
</iota>
</tau>
</omicron>
</theta>
</kappa>
</tree>
</test>
<test>
<xpath>//omicron[@xml:lang="no-nb"][@xml:id="id1"]//psi[@xml:lang="en-GB"][not(preceding-sibling::*)][not(child::node())][following-sibling::omicron[@xml:lang="en-US"][preceding-sibling::*[position() = 1]]/omicron[@data][@xml:lang="en-GB"][not(preceding-sibling::*)]/*[@xml:lang="en-GB"][not(preceding-sibling::*)][not(following-sibling::*)]//xi[@abort][@xml:lang="en-GB"][@xml:id="id2"][not(preceding-sibling::*)][not(following-sibling::*)]//*[@xml:lang="en-US"][not(following-sibling::*)]/*[starts-with(@and,"fals")][@xml:lang="no-nb"][@xml:id="id3"][not(preceding-sibling::*)][not(following-sibling::*)]]</xpath>
<tree>
<omicron xml:lang="no-nb" xml:id="id1">
<psi xml:lang="en-GB"/>
<omicron xml:lang="en-US">
<omicron data="false" xml:lang="en-GB">
<any xml:lang="en-GB">
<xi abort="attribute" xml:lang="en-GB" xml:id="id2">
<any xml:lang="en-US">
<any and="false" xml:lang="no-nb" xml:id="id3">
<green>This text must be green</green>
</any>
</any>
</xi>
</any>
</omicron>
</omicron>
</omicron>
</tree>
</test>
<test>
<xpath>//psi[@xml:lang="no-nb"]//omicron[@xml:id="id1"][not(preceding-sibling::*)]//omega[@class="_blank"]/xi[contains(@and,"ue")][@xml:lang="no"][@xml:id="id2"]//pi[@xml:id="id3"][not(preceding-sibling::*)][not(following-sibling::*)]/delta[@attrib][@xml:lang="en"][not(preceding-sibling::*)][following-sibling::omega[@content][preceding-sibling::*[position() = 1]][not(child::node())][following-sibling::alpha[contains(concat(@abort,"$"),"ontent$")][@xml:lang="en-GB"][@xml:id="id4"][preceding-sibling::*[position() = 2]][following-sibling::psi[contains(concat(@or,"$"),"te-value$")][@xml:lang="no-nb"][@xml:id="id5"][preceding-sibling::*[position() = 3]][not(child::node())][following-sibling::omicron[@class][@xml:id="id6"]//phi[@xml:lang="nb"][not(preceding-sibling::*)]//delta[contains(@att,"00%")][@xml:id="id7"][not(following-sibling::*)]][position() = 1]][position() = 1]]]</xpath>
<tree>
<psi xml:lang="no-nb">