summaryrefslogtreecommitdiff
path: root/gohadoopxml.go
diff options
context:
space:
mode:
Diffstat (limited to 'gohadoopxml.go')
-rw-r--r--gohadoopxml.go37
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
+}