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") }
- 上一篇 »Python HTML特殊符号的转义与反转义
- 下一篇 »PHP与Golang如何通信?