PASS ancestor::* (context = attr1) PASS ancestor::* (context = GCHILD11) PASS ancestor::node() (context = attr1) PASS ancestor::node() (context = GCHILD11) PASS preceding::node() (context = attr4) PASS preceding::node() (context = CHILD2) PASS preceding::node() (context = GCHILD12) PASS following::node() (context = attr1) PASS following::node() (context = CHILD1) PASS following::node() (context = GCHILD11) PASS following::node() (context = CHILD2) PASS //CHILD | //@attr1 PASS //CHILD | //@attr1 | //*[@name='GCHILD12'] | //@attr31 PASS (//CHILD | //@attr1 | //*[@name='GCHILD12'] | //@attr31)[3] PASS (//CHILD | //@attr1 | //*[@name='GCHILD12'] | //@attr31)[position() = last()] PASS //CHILD[2]/GCHILD | //CHILD[1]/GCHILD PASS doc.evaluate("string(//*[@name='GCHILD12'] | //CHILD | //@attr1 | //@attr31)", doc, null, XPathResult.STRING_TYPE, null).stringValue is "TEXT1" PASS descendant::node() (context = attr1) PASS child::node() (context = attr1) PASS parent::node() (context = attr1) PASS following-sibling::node() (context = attr1) PASS preceding-sibling::node() (context = attr4) PASS attribute::node() (context = attr1) PASS self::node() (context = attr1) PASS self::* (context = attr1) PASS descendant-or-self::node() (context = attr1) PASS ancestor-or-self::node() (context = attr1) PASS successfullyParsed is true TEST COMPLETE