code: func (d *Decoder) Skip() error {
  	for {
  		tok, err := d.Token()
  		if err != nil {
  			return err
  		}
  		switch tok.(type) {
  		case StartElement:
  			if err := d.Skip(); err != nil {
  				return err
  			}
  		case EndElement:
  			return nil
  		}
  	}
  }
docs: // Skip reads tokens until it has consumed the end element
  // matching the most recent start element already consumed.
  // It recurs if it encounters a start element, so it can be used to
  // skip nested structures.
  // It returns nil if it finds an end element matching the start
  // element; otherwise it returns an error describing the problem.