<XPath xmlns:ietf=“www.ietf.org” >

(//.|//@*|//namespace::*)
[
    self::ietf:e1
        or
    (parent::ietf:e1 and not(self::text() or self::e2))
        or
    count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node())
]

</XPath>