Rozważmy te dokumenty 2 XMLUnikać XML całkowitą analizy: jeśli pole puste
<a>
<b nil="true"></b>
</a>
i
<a>
<b type="integer">1</b>
</a>
Jak mogę unmarshal ten XML prawidłowo Przejdź do pola b
struct typu int
, bez produkuje błąd strconv.ParseInt: parsing "": invalid syntax
w pierwszym przypadku?
nie wydaje się działać w tym przypadku.
przykład: http://play.golang.org/p/fbhVJ4zUbl
Możesz chcieć stworzyć własną implementację dekodera XML owijając dekoder Go. "Kodowanie/json" jest o wiele potężniejsze, możesz wziąć to jako przykład. Jeśli 'json.Unmarshal (...)' zauważy, że twoja instancja typów 'obj' implementuje' json.Unmarshaler', wywoła ona 'obj.UnmarshalJSON'. Nie mam pojęcia, dlaczego "encoding/xml" nie robi tego samego. Możesz odesłać swoje pytanie na listę [Go mailing list] (https://groups.google.com/forum/#!forum/golang-nuts). Wydaje się dziwne, że robienie "b" wskaźnikiem również nie działa. – Philip