encoding/xmlEscapeText
package main
import (
"bytes"
"encoding/xml"
"fmt"
)
func Xml(in string) string {
var b bytes.Buffer
xml.EscapeText(&b, []byte(in))
return b.String()
}
func main() {
fmt.Println(`<?xml profile><test>` + Xml(`test '123'`) + `</test>`)
}
test '123'
encoding/xml
interface{}EncodeElement
package main
import (
"encoding/xml"
"os"
)
func main() {
s := `test '123'`
test := xml.StartElement{Name:xml.Name{Local:`test`}}
xml.NewEncoder(os.Stdout).EncodeElement(s, test)
}
stuct.Encode
package main
import (
"encoding/xml"
"os"
)
type Test struct {
XMLName xml.Name `xml:"test"`
Content string `xml:",chardata"`
}
func main() {
s := Test{Content:`test '123'`}
xml.NewEncoder(os.Stdout).Encode(&s)
}
UnmarshalDecode
package main
import (
"bytes"
"encoding/xml"
"fmt"
)
type Test struct {
XMLName xml.Name `xml:"test"`
Content string `xml:",chardata"`
}
func main() {
s := Test{Content:`test '123'`}
var buf bytes.Buffer
xml.NewEncoder(&buf).Encode(&s)
fmt.Println("Encoded =", buf.String())
var read Test
xml.NewDecoder(bytes.NewReader(buf.Bytes())).Decode(&read)
fmt.Println("Content =", read.Content)
}
xml.Marshal