Extract writeXMLStartElement func.
This commit is contained in:
parent
32bf10887c
commit
2a11a800da
|
|
@ -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.
|
||||
func (stream *Stream) SendStart(start *xml.StartElement) error {
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
if _, err := buf.Write([]byte{'<'}); err != nil {
|
||||
if err := writeXMLStartElement(buf, start); err != nil {
|
||||
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())
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,28 @@ import (
|
|||
"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.
|
||||
func writeXMLName(w io.Writer, name xml.Name) error {
|
||||
if name.Space == "" {
|
||||
|
|
|
|||
Loading…
Reference in New Issue