mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
encoding/xml: add (*Encoder).Indent
Exposing this on the Encoder allows streaming generation of indented XML. R=golang-dev, rogpeppe CC=golang-dev https://golang.org/cl/7221075
This commit is contained in:
parent
6073176512
commit
ee90874826
2 changed files with 49 additions and 2 deletions
|
|
@ -81,8 +81,7 @@ func Marshal(v interface{}) ([]byte, error) {
|
|||
func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
|
||||
var b bytes.Buffer
|
||||
enc := NewEncoder(&b)
|
||||
enc.prefix = prefix
|
||||
enc.indent = indent
|
||||
enc.Indent(prefix, indent)
|
||||
if err := enc.Encode(v); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -99,6 +98,14 @@ func NewEncoder(w io.Writer) *Encoder {
|
|||
return &Encoder{printer{Writer: bufio.NewWriter(w)}}
|
||||
}
|
||||
|
||||
// Indent sets the encoder to generate XML in which each element
|
||||
// begins on a new indented line that starts with prefix and is followed by
|
||||
// one or more copies of indent according to the nesting depth.
|
||||
func (enc *Encoder) Indent(prefix, indent string) {
|
||||
enc.prefix = prefix
|
||||
enc.indent = indent
|
||||
}
|
||||
|
||||
// Encode writes the XML encoding of v to the stream.
|
||||
//
|
||||
// See the documentation for Marshal for details about the conversion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue