go 解析xml
package main import ( _ "bufio" "os" "fmt" "encoding/xml" "io/ioutil" "strings" ) type Property struct { Name string Value string Description string } type Configuration struct{ Property []Property } func main(){ //1.透過讀取整個檔案來解析xml data,err := ioutil.ReadFile("f://core-default.xml") res := string(data) //將對應的標籤字母開頭大寫 ,因為xml是透過反射解析的,否則無法訪問該屬性,如果已經大寫,則不需替換 resC := strings.ReplaceAll(res, "configuration>", "Configuration>") resP := strings.ReplaceAll(resC, "property>", "Property>") resN := strings.ReplaceAll(resP, "name>", "Name>") resV := strings.ReplaceAll(resN, "value>", "Value>") resD := strings.ReplaceAll(resV, "description>", "Description>") //fmt.Println(string(data)) if err != nil { fmt.Println("read file err",err) } //decoder := xml.NewDecoder(file) var conf Configuration xml.Unmarshal([]byte(resD), &conf) //file.Close() var cnt int = len(conf.Property) fmt.Println("cnt:",cnt) fmt.Println(conf) //for index ,value := range config.Property{ // fmt.Print //} fmt.Println("----------------------------------------------------------------------") fmt.Println("----------------------------------------------------------------------") fmt.Println("----------------------------------------------------------------------") fmt.Println("----------------------------------------------------------------------") fmt.Println("----------------------------------------------------------------------") fmt.Println("----------------------------------------------------------------------") fmt.Println("----------------------------------------------------------------------") //透過reader的方式解析xml //下面無法替換標籤開頭為大寫,解析失敗 lfile,lerr := os.Open("f://core-default.xml") if lerr != nil { fmt.Println("read file err",err) } decoder := xml.NewDecoder(lfile) var lconf Configuration decoder.Decode(lconf) lfile.Close() fmt.Println(lconf) }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2654052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- go 1.8 xml解析不支援cdataGoXML
- 【Go學習筆記16】解析xmlGo筆記XML
- Xml解析XML
- iOS – XML解析iOSXML
- xml php 解析XMLPHP
- iOS - XML解析iOSXML
- 【Java】解析xmlJavaXML
- Java解析XMLJavaXML
- jaxb解析xmlXML
- DOM解析XMLXML
- Python解析xml[xml.dom]PythonXML
- 175.XML解析XML
- C# XML解析C#XML
- 使用jdom解析XMLXML
- 解析xml筆記XML筆記
- XML解析技術XML
- xml解析之domXML
- XML資料解析XML
- 關於xml解析XML
- 讀取xml檔案 解析雙層xmlXML
- Go解析Go
- XML 檔案解析實踐 (DOM 解析)XML
- Go xml檔案處理GoXML
- python之XML解析PythonXML
- jdom解析xml檔案XML
- JAVA進行XML解析JavaXML
- java使用sax解析xmlJavaXML
- GData解析XML檔案XML
- python 的xml解析PythonXML
- Android中解析XMLAndroidXML
- SQLServer解析xml到OracleSQLServerXMLOracle
- 解析帶字首的xmlXML
- jquery 解析xml檔案jQueryXML
- 有關jdom解析xmlXML
- 用c#生成xml字串及解析xml字串C#XML字串
- Go框架解析:go-zeroGo框架
- Python XML解析之DOMPythonXML
- 使用DocumentBuilderFactory解析XML淺談UIXML