We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
type xmlMapEntry struct { XMLName xml.Name Value string xml:",chardata" }
xml:",chardata"
func (m Params) MarshalXML(e *xml.Encoder, start xml.StartElement) error { if len(m) == 0 { return nil } start.Name.Local = "xml" // 更改xml开始标签 err := e.EncodeToken(start) if err != nil { return err }
for k, v := range m { e.Encode(xmlMapEntry{XMLName: xml.Name{Local: k}, Value: v}) } return e.EncodeToken(start.End())
}
func (m *Params) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { *m = Params{} for { var e xmlMapEntry
err := d.Decode(&e) if err == io.EOF { break } else if err != nil { return err } (*m)[e.XMLName.Local] = e.Value } return nil
func XmlToMap(xmlStr string) Params {
params := make(Params) err := xml.Unmarshal([]byte(xmlStr), ¶ms) if err != nil { panic(err) } return params // params := make(Params) // decoder := xml.NewDecoder(strings.NewReader(xmlStr)) // var ( // key string // value string // ) // for t, err := decoder.Token(); err == nil; t, err = decoder.Token() { // switch token := t.(type) { // case xml.StartElement: // 开始标签 // key = token.Name.Local // case xml.CharData: // 标签内容 // content := string([]byte(token)) // value = content // } // if key != "xml" { // if value != "\n" && value != "\n " { // params.SetString(key, value) // } // } // } return params
func MapToXml(params Params) string { buf, err := xml.Marshal(params) if err != nil { panic(err) } return string(buf) // var buf bytes.Buffer // buf.WriteString(<xml>) // for k, v := range params { // buf.WriteString(<) // buf.WriteString(k) // buf.WriteString(><![CDATA[) // buf.WriteString(v) // buf.WriteString(]]></) // buf.WriteString(k) // buf.WriteString(>) // } // buf.WriteString(</xml>)
<xml>
<
><![CDATA[
]]></
>
</xml>
// return buf.String()
The text was updated successfully, but these errors were encountered:
No branches or pull requests
type xmlMapEntry struct {
XMLName xml.Name
Value string
xml:",chardata"
}
func (m Params) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if len(m) == 0 {
return nil
}
start.Name.Local = "xml" // 更改xml开始标签
err := e.EncodeToken(start)
if err != nil {
return err
}
}
func (m *Params) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
*m = Params{}
for {
var e xmlMapEntry
}
func XmlToMap(xmlStr string) Params {
}
func MapToXml(params Params) string {
buf, err := xml.Marshal(params)
if err != nil {
panic(err)
}
return string(buf)
// var buf bytes.Buffer
// buf.WriteString(
<xml>
)// for k, v := range params {
// buf.WriteString(
<
)// buf.WriteString(k)
// buf.WriteString(
><![CDATA[
)// buf.WriteString(v)
// buf.WriteString(
]]></
)// buf.WriteString(k)
// buf.WriteString(
>
)// }
// buf.WriteString(
</xml>
)}
The text was updated successfully, but these errors were encountered: