golang 解析大xml檔案
阿新 • • 發佈:2018-12-15
golang 解析很大的xml
in, err := os.Open(os.Args[1]) defer in.Close() decoder := xml.NewDecoder(in) var t xml.Token var text bool for t, err = decoder.Token(); err == nil; t, err = decoder.Token() { switch token := t.(type) { case xml.StartElement: name := token.Name.Local if name == "text" { text = true } case xml.EndElement: text = false case xml.CharData: if text { content := string([]byte(token)) fmt.Println(content) return } default: return // } }
如果解析的是html,則可以指定如下屬性,用於忽略“不正規”的html標籤,
decoder.Strict = false decoder.AutoClose = xml.HTMLAutoClose 下面屬性,可以進行字元轉義,預設只轉義 這5個 < > & ' " decoder.Entity = xml.HTMLEntity