golang xml value 为html的时候如何避免转义
golang xml html cdata 被转义 avoid escape
func RichMediaTest() { type request struct { XMLName xml.Name `xml:"requestAA"` Type string `xml:"type,attr"` HtmlString interface{} `xml:"htmlStr"` Html string `xml:"Html"` Clicktype string `xml:"htmlString"` Clickurl string `xml:"clickurl"` Urltype string `xml:"urltype"` Refresh string `xml:"refresh"` Scale string `xml:"scale"` } var v request v = request{Type: "xx", HtmlString: struct { Value string `xml:",innerxml"` }{"<a href='xx'/> "}, Html: "<a href='xxx.com' />", Clicktype: "safari", Clickurl: "http://xxxx.com", Urltype: "link", Refresh: "30", Scale: "no", } xmlstr, err := xml.MarshalIndent(v, " ", " ") //xmlstr, err := xml.Marshal(v) if err != nil { fmt.Printf("error: %v", err) return } xmlstr = []byte(xml.Header + string(xmlstr)) fmt.Println(string(xmlstr)) }
运行输出结果
<?xml version="1.0" encoding="UTF-8"?> <requestAA type="xx"> <htmlStr><a href='xx'/> </htmlStr> <Html><a href='xxx.com' /></Html> <htmlString>safari</htmlString> <clickurl>http://xxxx.com</clickurl> <urltype>link</urltype> <refresh>30</refresh> <scale>no</scale> </requestAA>
参考:
https://play.golang.org/p/z8JQjRdbV4
https://github.com/golang/go/issues/12963
package mai
import (
"encoding/xml"
"fmt"
)
type MyXML struct {
XMLName xml.Name `xml:"item"`
Content interface{} `xml:"content"`
}
func main() {
x := MyXML{Content: struct{Value string `xml:",innerxml"`}{"test&abc"}}
y, _ := xml.MarshalIndent(x, "", " ")
fmt.Println(string(y))
fmt.Println("Hello, playground")
}
浙公网安备 33010602011771号