diff -r 9db2758c3372 src/pkg/encoding/xml/marshal.go
--- a/src/pkg/encoding/xml/marshal.go Thu Apr 26 13:32:05 2012 -0700
+++ b/src/pkg/encoding/xml/marshal.go Fri Jun 08 10:56:26 2012 -0700
@@ -273,7 +273,7 @@
s := parentStack{printer: p}
for i := range tinfo.fields {
finfo := &tinfo.fields[i]
- if finfo.flags&(fAttr|fAny) != 0 {
+ if finfo.flags&(fAttr) != 0 {
continue
}
vf := val.FieldByIndex(finfo.idx)
diff -r 9db2758c3372 src/pkg/encoding/xml/marshal_test.go
--- a/src/pkg/encoding/xml/marshal_test.go Thu Apr 26 13:32:05 2012 -0700
+++ b/src/pkg/encoding/xml/marshal_test.go Fri Jun 08 10:56:26 2012 -0700
@@ -185,6 +185,11 @@
AnyField AnyHolder `xml:",any"`
}
+type AnyList struct {
+ XMLName struct{} `xml:"l"`
+ Items []AnyHolder `xml:",any"`
+}
+
type AnyHolder struct {
XMLName Name
XML string `xml:",innerxml"`
@@ -652,9 +657,16 @@
UnmarshalOnly: true,
},
{
- Value: &AnyTest{Nested: "known", AnyField: AnyHolder{XML: ""}},
- ExpectXML: `known`,
- MarshalOnly: true,
+ ExpectXML: `zaphodheart of gold`,
+ Value: &AnyList{
+ Items: []AnyHolder{{
+ XMLName: Name{Local: "name"},
+ XML: "zaphod",
+ }, {
+ XMLName: Name{Local: "vessel"},
+ XML: "heart of gold",
+ }},
+ },
},
// Test recursive types.