Browse Source

added error handling

Chad Russell 11 years ago
parent
commit
c978efa42f
1 changed files with 13 additions and 4 deletions
  1. 13 4
      gin.go

+ 13 - 4
gin.go

@@ -64,12 +64,21 @@ type (
 
 
 // Allows type H to be used with xml.Marshal
 // Allows type H to be used with xml.Marshal
 func (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 func (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	e.EncodeToken(start)
+	if err := e.EncodeToken(start); err != nil {
+		return err
+	}
 	for key, value := range h {
 	for key, value := range h {
-		elem := xml.StartElement{Name: xml.Name{Local: key}}
-		e.EncodeElement(value, elem)
+		elem := xml.StartElement{
+			xml.Name{"", key},
+			[]xml.Attr{},
+		}
+		if err = e.EncodeElement(value, elem); err != nil {
+			return err
+		}
+	}
+	if err = e.EncodeToken(xml.EndElement{start.Name}); err != nil {
+		return err
 	}
 	}
-	e.EncodeToken(xml.EndElement{start.Name})
 	return nil
 	return nil
 }
 }