utils.go 757 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package gin
  2. import (
  3. "encoding/xml"
  4. )
  5. type H map[string]interface{}
  6. // Allows type H to be used with xml.Marshal
  7. func (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
  8. start.Name = xml.Name{
  9. Space: "",
  10. Local: "map",
  11. }
  12. if err := e.EncodeToken(start); err != nil {
  13. return err
  14. }
  15. for key, value := range h {
  16. elem := xml.StartElement{
  17. Name: xml.Name{Space: "", Local: key},
  18. Attr: []xml.Attr{},
  19. }
  20. if err := e.EncodeElement(value, elem); err != nil {
  21. return err
  22. }
  23. }
  24. if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
  25. return err
  26. }
  27. return nil
  28. }
  29. func filterFlags(content string) string {
  30. for i, a := range content {
  31. if a == ' ' || a == ';' {
  32. return content[:i]
  33. }
  34. }
  35. return content
  36. }