@@ -6,35 +6,41 @@ import (
6
6
)
7
7
8
8
// XML returns a XML representation of the Dataset as string.
9
- func (d * Dataset ) XML () string {
9
+ func (d * Dataset ) XML () ( string , error ) {
10
10
return d .XMLWithTagNamePrefixIndent ("row" , " " , " " )
11
11
}
12
12
13
13
// XML returns a XML representation of the Databook as string.
14
- func (d * Databook ) XML () string {
14
+ func (d * Databook ) XML () ( string , error ) {
15
15
str := "<databook>\n "
16
16
for _ , s := range d .sheets {
17
17
str += " <sheet>\n <title>" + s .title + "</title>\n "
18
- str += s .dataset .XMLWithTagNamePrefixIndent ("row" , " " , " " )
18
+ row , err := s .dataset .XMLWithTagNamePrefixIndent ("row" , " " , " " )
19
+ if err != nil {
20
+ return "" , nil
21
+ }
22
+ str += row
19
23
str += "\n </sheet>"
20
24
}
21
25
str += "\n </databook>"
22
- return str
26
+ return str , nil
23
27
}
24
28
25
29
// XMLWithTagNamePrefixIndent returns a XML representation with custom tag, prefix and indent.
26
- func (d * Dataset ) XMLWithTagNamePrefixIndent (tagName , prefix , indent string ) string {
30
+ func (d * Dataset ) XMLWithTagNamePrefixIndent (tagName , prefix , indent string ) ( string , error ) {
27
31
back := d .Dict ()
28
32
29
33
var b bytes.Buffer
30
34
b .WriteString ("<dataset>\n " )
31
35
for _ , r := range back {
32
36
m := mxj .Map (r .(map [string ]interface {}))
33
- m .XmlIndentWriter (& b , prefix , indent , tagName )
37
+ if err := m .XmlIndentWriter (& b , prefix , indent , tagName ); err != nil {
38
+ return "" , err
39
+ }
34
40
}
35
41
b .WriteString ("\n " + prefix + "</dataset>" )
36
42
37
- return b .String ()
43
+ return b .String (), nil
38
44
}
39
45
40
46
// LoadXML loads a Dataset from an XML source.
0 commit comments