This commit is contained in:
xbjiang
2013-04-27 05:26:10 +08:00
parent 745c6f7502
commit c34dbb05c8
3 changed files with 5 additions and 5 deletions

View File

@@ -87,7 +87,7 @@ XML本质上是一种树形的数据格式而我们可以定义与之匹配
}
上面的例子中将xml文件解析成对应的strcut对象是通过`xml.Unmarshal`来完成的这个过程是如何实现的可以看到我们的struct定义后面多了一些类似于`xml:"serverName"`这样的内容,这个是strcut的一个特性它们被称为 strcut tag它们是用来辅助反射的。我们来看一下`Unmarshal`的定义:
上面的例子中将xml文件解析成对应的struct对象是通过`xml.Unmarshal`来完成的这个过程是如何实现的可以看到我们的struct定义后面多了一些类似于`xml:"serverName"`这样的内容,这个是struct的一个特性它们被称为 struct tag它们是用来辅助反射的。我们来看一下`Unmarshal`的定义:
func Unmarshal(data []byte, v interface{}) error
@@ -188,8 +188,8 @@ Go语言的反射机制可以利用这些tag信息来将来自XML文件中的
- 如果v是structXMLName的tag中定义的名称
- 类型为xml.Name的名叫XMLName的字段的值
- 通过strcut中字段的tag来获取
- 通过strcut的字段名用来获取
- 通过struct中字段的tag来获取
- 通过struct的字段名用来获取
- marshall的类型名称
我们应如何设置struct 中字段的tag信息以控制最终xml文件的生成呢