# File htree/traverse.rb, line 119
    def filter_with_path(path, &block)
      return self if self.empty_element?
      children = []
      self.each_with_path(path) {|c, child_path|
        if yield c, child_path
          if Elem === c
            children << c.filter_with_path(child_path, &block)
          else
            children << c
          end
        end
      }
      Elem.new!(@stag, children, @etag)
    end