Render an XML response.
(w io.Writer, v interface{})
| 224 | |
| 225 | // Render an XML response. |
| 226 | func (x XML) Render(w io.Writer, v interface{}) error { |
| 227 | var result []byte |
| 228 | |
| 229 | var err error |
| 230 | |
| 231 | if x.Indent { |
| 232 | result, err = xml.MarshalIndent(v, "", " ") |
| 233 | result = append(result, '\n') |
| 234 | } else { |
| 235 | result, err = xml.Marshal(v) |
| 236 | } |
| 237 | |
| 238 | if err != nil { |
| 239 | return err |
| 240 | } |
| 241 | |
| 242 | // XML marshaled fine, write out the result. |
| 243 | if hw, ok := w.(http.ResponseWriter); ok { |
| 244 | x.Write(hw) |
| 245 | } |
| 246 | |
| 247 | if len(x.Prefix) > 0 { |
| 248 | _, _ = w.Write(x.Prefix) |
| 249 | } |
| 250 | |
| 251 | _, _ = w.Write(result) |
| 252 | |
| 253 | return nil |
| 254 | } |