2017-06-20 34 views
1

我只是在我學習的過程中一定去,但有難以控制XML序列化序列化INT與去

我想序列將int <number>1</number>,我曾嘗試以下IM XML節點名稱:

package main 

import (
    "fmt" 
    "encoding/xml" 
) 
type number struct { 
    Number int64 
} 

func main() { 
    out, _ := xml.Marshal(number{2}) 
    fmt.Println(string(out)) 
} 

https://play.golang.org/p/Ac-p1q3ytZ

,但我得到<number><Number>2</Number></number>這是雙重包裹由於結構的。如果我只是序列化一個int我得到<int>2</int>這是不正確命名。

是否有辦法告訴serialize不要渲染根節點,或者直接將屬性放入父級?

回答

1

是的。根據xml.Marshal的文檔,您可以使用標籤",chardata"

type number struct { 
    Number int64 `xml:",chardata"` 
} 

此輸出<number>2</number>,截至https://play.golang.org/p/Aoqfs04OTx

+0

這就是完美看出,謝謝 –