func newElement(input string) (common.TagNode, error) { var el common.TagNode match := elementRe.FindStringSubmatch(input) if match == nil { return el, fmt.Errorf("Badly-formatted wossname") } for i, name := range elementNames { switch name { case "tag": el.Tag = match[i] case "id": el.Id = match[i] case "classes": if match[i] == "" { continue } el.Classes = strings.Fields(match[i]) case "attributes": if match[i] == "" { continue } var err error el.Attributes, err = parseAttributes(match[i]) if err != nil { return el, err } } } return el, nil }