-
Notifications
You must be signed in to change notification settings - Fork 145
Open
Description
从另外一个项目抄过来的。
package wxpay
import (
"bytes"
"encoding/json"
"encoding/xml"
"io"
)
// ToJSON 转化成JSON字符
func (p Params) ToJSON() string {
mjson, _ := json.Marshal(p)
return string(mjson)
}
// Decode XML解码
func Decode(r io.Reader) Params {
var (
d *xml.Decoder
start *xml.StartElement
params Params
)
d = xml.NewDecoder(r)
params = make(Params)
for {
tok, err := d.Token()
if err != nil {
break
}
switch t := tok.(type) {
case xml.StartElement:
start = &t
case xml.CharData:
if t = bytes.TrimSpace(t); len(t) > 0 {
params.SetString(start.Name.Local, string(t))
}
}
}
return params
}
// Encode XML编码
func Encode(params Params) io.Reader {
var buf bytes.Buffer
buf.WriteString(``)
for k, v := range params {
buf.WriteString(`<`)
buf.WriteString(k)
buf.WriteString(`>`)
}
buf.WriteString(``)
return &buf
}
neefrankie, amesy and johntaiii
Metadata
Metadata
Assignees
Labels
No labels