Go的xml
包非常出色,使得处理XML变得非常容易。但有一件事我不确定如何做:当从本地结构创建XML文档时,如何指定文档类型?
例如,这些结构:
type Person struct {
XMLName xml.Name `xml:"person"`
FirstName string `xml:"firstName"`
MiddleName string `xml:"middleName"`
LastName string `xml:"lastName"`
Age int64 `xml:"age"`
Skills []Skill `xml:"skills"`
}
type Skill struct {
XMLName xml.Name `xml:"skill"`
Name string `xml:"skillName"`
YearsPracticed int64 `xml:"practice"`
}
将生成这样的XML:
<person>
<firstName>Bob</firstName>
<middleName></middleName>
<lastName>Jones</middleName>
<age>23</age>
<skills>
<skill>
<skillName>Cooking</skillName>
<practice>3</practice>
</skill>
<skill>
<skillName>Basketball</skillName>
<practice>4</practice>
</skill>
</skills>
</person>
这很棒,但我该怎么做才能得到这个:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<firstName>Bob</firstName>
<middleName></middleName>
...
这似乎太简单了,但只需要进行字符串追加吗?
另一方面,如果你想将带有文档类型的文本块反序列化为一组结构体,Go的XML解析器会如何处理? 忽略它?
<?
前缀标签;我不确定所需的结构标记是什么。也许是“xml”。 - Momer[]byte
和string
之间进行转换涉及到内存复制,这样的事情是不幸的。毕竟,myString
可能非常大。 - Torsten Bronger