summaryrefslogtreecommitdiff
path: root/comment.go
diff options
context:
space:
mode:
Diffstat (limited to 'comment.go')
-rw-r--r--comment.go23
1 files changed, 17 insertions, 6 deletions
diff --git a/comment.go b/comment.go
index 7f3b10d..99630c9 100644
--- a/comment.go
+++ b/comment.go
@@ -10,9 +10,12 @@
package excelize
import (
+ "bytes"
"encoding/json"
"encoding/xml"
"fmt"
+ "io"
+ "log"
"strconv"
"strings"
)
@@ -303,12 +306,16 @@ func (f *File) countComments() int {
// decodeVMLDrawingReader provides a function to get the pointer to the
// structure after deserialization of xl/drawings/vmlDrawing%d.xml.
func (f *File) decodeVMLDrawingReader(path string) *decodeVmlDrawing {
+ var err error
+
if f.DecodeVMLDrawing[path] == nil {
c, ok := f.XLSX[path]
if ok {
- d := decodeVmlDrawing{}
- _ = xml.Unmarshal(namespaceStrictToTransitional(c), &d)
- f.DecodeVMLDrawing[path] = &d
+ f.DecodeVMLDrawing[path] = new(decodeVmlDrawing)
+ if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(c))).
+ Decode(f.DecodeVMLDrawing[path]); err != nil && err != io.EOF {
+ log.Printf("xml decode error: %s", err)
+ }
}
}
return f.DecodeVMLDrawing[path]
@@ -328,12 +335,16 @@ func (f *File) vmlDrawingWriter() {
// commentsReader provides a function to get the pointer to the structure
// after deserialization of xl/comments%d.xml.
func (f *File) commentsReader(path string) *xlsxComments {
+ var err error
+
if f.Comments[path] == nil {
content, ok := f.XLSX[path]
if ok {
- c := xlsxComments{}
- _ = xml.Unmarshal(namespaceStrictToTransitional(content), &c)
- f.Comments[path] = &c
+ f.Comments[path] = new(xlsxComments)
+ if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(content))).
+ Decode(f.Comments[path]); err != nil && err != io.EOF {
+ log.Printf("xml decode error: %s", err)
+ }
}
}
return f.Comments[path]