func (listener *PlainListener) StartElement(uri, localName, qName string,
	attrs []*Attribute) {
	for _, attr := range attrs {
		if _, ok := listener.Manifest.Attrs[localName]; !ok {
			listener.Manifest.Attrs[localName] = make([]*Attribute, 0)
		}
		listener.Manifest.Attrs[localName] = append(listener.Manifest.Attrs[localName], attr)
		fmt.Println(localName, attr)
	}
}
Receive notification of the beginning of an element.

@param uri
the Namespace URI, or the empty string if the element has no
Namespace URI or if Namespace processing is not being
performed
@param localName
the local name (without prefix), or the empty string if
Namespace processing is not being performed
@param qName
the qualified name (with prefix), or the empty string if
qualified names are not available
@param atts
the attributes attached to the element. If there are no
attributes, it shall be an empty Attributes object. The value
of this object after startElement returns is undefined
package axmlParser
import (
	"fmt"
	"io"
)
type Manifest struct {
	Attrs map[string][]*Attribute
}
type PlainListener struct {
	Manifest Manifest
}
func (listener *PlainListener) BuildXml(writer io.Writer) error {
	return nil
}
func (listener *PlainListener) StartDocument() {
	listener.Manifest.Attrs = make(map[string][]*Attribute)
}
func (listener *PlainListener) EndDocument() {
}
func (listener *PlainListener) StartPrefixMapping(prefix, uri string) {
}
func (listener *PlainListener) EndPrefixMapping(prefix, uri string) {}