commit - 33d9e23c99af8e8c059dd587cf9ee8d61734d300
commit + 848b29c4c69a1837ec426676170747fd0d830885
blob - d986c6ded9e2e83b290615711c1b70716666633d
blob + 2e1e5b17a04d83eb4ef1c34ee947ca5f6ffb3fd6
--- atom/atom.go
+++ atom/atom.go
import (
"encoding/xml"
+ "io"
"time"
)
Feed: f,
}
return xml.MarshalIndent(f1, "", "\t")
- // b = bytes.ReplaceAll(b, []byte("></link>"), []byte("/>"))
- // return b, err
}
+
+func Decode(r io.Reader) (*Feed, error) {
+ var f feed
+ if err := xml.NewDecoder(r).Decode(&f); err != nil {
+ return nil, err
+ }
+ return f.Feed, nil
+}
blob - 5e54cfd439080b97125d2e85958079a61f1726f9
blob + 937ab0135205a249d8a811a8741ce8659474c091
--- atom/atom_test.go
+++ atom/atom_test.go
"encoding/xml"
"fmt"
"os"
+ "path/filepath"
"testing"
"time"
)
fmt.Fprintln(os.Stderr, string(got))
}
}
+
+func TestDecode(t *testing.T) {
+ names, err := filepath.Glob("testdata/*.xml")
+ if err != nil {
+ t.Fatal(err)
+ }
+ for _, name := range names {
+ f, err := os.Open(name)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if _, err := Decode(f); err != nil {
+ t.Errorf("decode %s: %v", name, err)
+ }
+ f.Close()
+ }
+}