diff options
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | goencxml.go | 36 |
2 files changed, 40 insertions, 1 deletions
@@ -2,7 +2,7 @@ CC = gcc CFLAGS = -Wall -O2 -all: mxml ezxml yxml sxmlc +all: mxml ezxml yxml sxmlc goencxml mxml: mxml.c $(CC) $(CFLAGS) -lmxml -pthread -o mxml mxml.c @@ -16,6 +16,9 @@ yxml: yxml.c yxmllib.o sxmlc: sxmlc.c sxmlclib.o $(CC) $(CFLAGS) -o sxmlc sxmlc.c sxmlclib.o +goencxml: goencxml.go + go build goencxml.go + ezxmllib.o: ezxmllib.c yxmllib.o: yxmllib.c diff --git a/goencxml.go b/goencxml.go new file mode 100644 index 0000000..cedbb9c --- /dev/null +++ b/goencxml.go @@ -0,0 +1,36 @@ +package main + +import ( + "bufio" + "encoding/xml" + "fmt" + "os" +) + +type article struct { + Title string `xml:"article>front>article-meta>title-group>article-title"` +} + +func process(r *bufio.Reader) { + var a article + + err := xml.NewDecoder(r).Decode(&a) + if err != nil { + fmt.Fprintf(os.Stderr, "Error when decoding XML file %q\n", err) + } + fmt.Printf("article-title: %s\n", a.Title) +} + +func main() { + for _, arg := range os.Args[1:] { + file, err := os.Open(arg) + if err != nil { + fmt.Fprintf(os.Stderr, "Error when opening file %q\n", arg) + os.Exit(1) + } + + r := bufio.NewReader(file) + process(r) + file.Close() + } +} |