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學習筆記16】解析xmlGo筆記XML
- Xml解析XML
- Java解析XMLJavaXML
- iOS – XML解析iOSXML
- python之XML解析PythonXML
- 175.XML解析XML
- C# XML解析C#XML
- Python XML解析之DOMPythonXML
- python XML 檔案解析PythonXML
- jdom解析xml檔案XML
- XML 檔案解析實踐 (DOM 解析)XML
- Go xml檔案處理GoXML
- XML解析-最快的方式SAXXML
- 使用DocumentBuilderFactory解析XML淺談UIXML
- XML DOM 解析器概述XML
- 使用 Java 解析XML檔案JavaXML
- Go解析Go
- Python解析XML檔案生成HTMLPythonXMLHTML
- 搞懂 XML 解析,徒手造 WEB 框架XMLWeb框架
- 【spring原始碼系列】之【xml解析】Spring原始碼XML
- NPM酷庫051:xml2js,解析XML格式資料NPMXMLJS
- 通過Go來分析和建立XMLGoXML
- Go框架解析:go-zeroGo框架
- XML DOM 解析器錯誤概述XML
- java使用jaxb解析XML(含根據xml自動生成實體類)JavaXML
- springMVC---配置檔案解析(web.xml)SpringMVCWebXML
- 基於 DOM 的 XML 檔案解析類XML
- c#(解析xml檔案基礎方法)C#XML
- 如何使用 ABAP 程式碼解析 XML 檔案XML
- 乾貨分享之Spring框架原始碼解析01-(xml配置解析)Spring框架原始碼XML
- Java 解析xml報文放入Map,並判斷所有xml標籤是否為空JavaXML
- java的XML解析(DOM4J技術)JavaXML
- web.xml 中 url-pattern 設定解析WebXML
- namespace對axis解析xml請求的影響namespaceXML
- kubernetes client-go解析clientGo
- mybatis原始碼配置檔案解析之五:解析mappers標籤(解析XML對映檔案)MyBatis原始碼APPXML
- 解析XML檔案時,無效的XML 字元 (Unicode: 0x7)異常處理XML字元Unicode
- mybatis的全域性配置檔案SqlMapConfig.xml解析MyBatisSQLXML