diff options
-rw-r--r-- | gohadoopxml.go | 37 |
1 files changed, 37 insertions, 0 deletions
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 +} |