code: @Override
      public void endElement(String uri, String localName, String qName) {
          // currentElement represents the last string encountered in the document
          setCurrentElement(getElementNames().pop());
  
          if (getCurrentElement().equalsIgnoreCase(GPXTags.WPT)) {
              setSpecificElement(false);
          } else if (getCurrentElement().equalsIgnoreCase(GPXTags.RTE)) {
              setSpecificElement(false);
          } else if (getCurrentElement().equalsIgnoreCase(GPXTags.TRK)) {
              setSpecificElement(false);
          } else if ((getCurrentElement().equalsIgnoreCase(GPXTags.TIME)) && (!isSpecificElement())) {
              time = getContentBuffer().toString();
          } else if ((getCurrentElement().equalsIgnoreCase(GPXTags.DESC)) && (!isSpecificElement())) {
              desc = getContentBuffer().toString();
          } else if (localName.equalsIgnoreCase(GPXTags.KEYWORDS)) {
              keywords = getContentBuffer().toString();
          }
      }
docs: Fires whenever an XML end markup is encountered. It catches attributes of
  the different elements and saves them in corresponding values[].
  
  @param uri URI of the local element
  @param localName Name of the local element (without prefix)
  @param qName qName of the local element (with prefix)