From 0e17c69ad8a2dc11fb4e35f06fccc9eb861d18b6 Mon Sep 17 00:00:00 2001 From: kballou Date: Tue, 14 Apr 2015 16:54:00 -0600 Subject: Add initial xml parsing code --- gohadoopxml.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 gohadoopxml.go diff --git a/gohadoopxml.go b/gohadoopxml.go new file mode 100644 index 0000000..c9f6171 --- /dev/null +++ b/gohadoopxml.go @@ -0,0 +1,37 @@ +package gohadoopxml + +import ( + "encoding/xml" + "io/ioutil" + "log" + "os" +) + +var Version string + +type Property struct { + XMLName xml.Name `xml:"property"` + Name string `xml:"name"` + Value string `xml:"value"` +} + +type Configuration struct { + XMLName xml.Name `xml:"configuration"` + Properties []Property `xml:"property"` +} + +func ParseXML(filename string) (Configuration, error) { + xmlFile, err := os.Open(filename) + if err != nil { + log.Println("Error occurred while opening xml file") + return Configuration{}, err + } + defer xmlFile.Close() + + xmlData, _ := ioutil.ReadAll(xmlFile) + + var config Configuration + xml.Unmarshal(xmlData, &config) + + return config, nil +} -- cgit v1.2.1