マーシャルパッケージを「ハッキングする」方法を見つけましたが、テストしませんでした。あなたに私にあなたにリンクを見せたいなら、今私に言いなさい、そして、私はこの返答のコメントにそれを掲示する。
私はいくつかの手動でのコードでした:私はこの `行く-nuts`スレッドが同じことを議論だと思う
package main
import (
"encoding/xml"
"fmt"
"regexp"
"strings"
)
type ParseXML struct {
Person struct {
Name string `xml:"Name"`
LastName string `xml:"LastName"`
Test string `xml:"Abc"`
} `xml:"Person"`
}
func main() {
var err error
var newPerson ParseXML
newPerson.Person.Name = "Boot"
newPerson.Person.LastName = "Testing"
var bXml []byte
var sXml string
bXml, err = xml.Marshal(newPerson)
checkErr(err)
sXml = string(bXml)
r, err := regexp.Compile(`<([a-zA-Z0-9]*)><(\\|\/)([a-zA-Z0-9]*)>`)
checkErr(err)
matches := r.FindAllString(sXml, -1)
fmt.Println(sXml)
if len(matches) > 0 {
r, err = regexp.Compile("<([a-zA-Z0-9]*)>")
for i := 0; i < len(matches); i++ {
xmlTag := r.FindString(matches[i])
xmlTag = strings.Replace(xmlTag, "<", "", -1)
xmlTag = strings.Replace(xmlTag, ">", "", -1)
sXml = strings.Replace(sXml, matches[i], "<"+xmlTag+" />", -1)
}
}
fmt.Println("")
fmt.Println(sXml)
}
func checkErr(chk error) {
if chk != nil {
panic(chk)
}
}
を。私はゴランがあなたが求めていることを支持しているのか疑いがあります。 https://groups.google.com/forum/#!topic/golang-nuts/guG6iOCRu08 –
できません。 (まあ、ちょうど 'sを除いて、、、g'。) – Volker