1
0
Fork 0

Extract writeXMLStartElement func.

This commit is contained in:
Matt Goodall 2012-07-11 15:35:24 +01:00
parent 32bf10887c
commit 2a11a800da
2 changed files with 23 additions and 17 deletions

View File

@ -56,26 +56,10 @@ func (stream *Stream) UpgradeTLS(config *tls.Config) error {
// Send the element's start tag. Typically used to open the stream's document. // Send the element's start tag. Typically used to open the stream's document.
func (stream *Stream) SendStart(start *xml.StartElement) error { func (stream *Stream) SendStart(start *xml.StartElement) error {
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
if _, err := buf.Write([]byte{'<'}); err != nil { if err := writeXMLStartElement(buf, start); err != nil {
return err return err
} }
if err := writeXMLName(buf, start.Name); err != nil {
return err
}
for _, attr := range start.Attr {
if _, err := buf.Write([]byte{' '}); err != nil {
return err
}
if err := writeXMLAttr(buf, attr); err != nil {
return err
}
}
if _, err := buf.Write([]byte{'>'}); err != nil {
return err
}
return stream.send(buf.Bytes()) return stream.send(buf.Bytes())
} }

View File

@ -6,6 +6,28 @@ import (
"io" "io"
) )
// Write an xml.StartElement.
func writeXMLStartElement(w io.Writer, start *xml.StartElement) error {
if _, err := w.Write([]byte{'<'}); err != nil {
return err
}
if err := writeXMLName(w, start.Name); err != nil {
return err
}
for _, attr := range start.Attr {
if _, err := w.Write([]byte{' '}); err != nil {
return err
}
if err := writeXMLAttr(w, attr); err != nil {
return err
}
}
if _, err := w.Write([]byte{'>'}); err != nil {
return err
}
return nil
}
// Write a xml.Name. // Write a xml.Name.
func writeXMLName(w io.Writer, name xml.Name) error { func writeXMLName(w io.Writer, name xml.Name) error {
if name.Space == "" { if name.Space == "" {