code: func NSSelectOneCtx(ctx NSContext, el *etree.Element, namespace, tag string) (*etree.Element, error) {
  	var found *etree.Element
  
  	err := NSFindIterateCtx(ctx, el, namespace, tag, func(ctx NSContext, el *etree.Element) error {
  		var err error
  
  		found, err = NSDetatch(ctx, el)
  		if err != nil {
  			return err
  		}
  
  		return ErrTraversalHalted
  	})
  
  	if err != nil {
  		return nil, err
  	}
  
  	return found, nil
  }
docs: // NSSelectOneCtx conducts a depth-first search for an element with the specified namespace
  // and tag. If such an element is found, a new *etree.Element is returned which is a
  // copy of the found element, but with all in-context namespace declarations attached
  // to the element as attributes.