在golang中,我們常常需要處理XML資料。然而,有時候我們可能會遇到一些未知的標籤,這給解組XML資料帶來了一些困難。那麼,如何在golang中處理這些未知標籤呢?在本文中,php小編新一將介紹一些在golang中處理未知標籤的方法,幫助你更好地解組XML資料。無論你是新手還是有經驗的開發人員,本文都能提供你有用的技巧和指導。讓我們開始吧!
給定一個未知結構的 XML 原始字串(來自 OCR 結果),我應該如何將該字串解組為可處理的 go 結構/介面?
對於 JSON,我可以做類似這樣的事情,那麼答案是否有 XML 版本?
範例
randomOcrXmlString := ` <container> <x></x> <y><z></z><y> <abc></abc> ... (many more random tags) </container>`
我的實際意圖- 在結束2706a1e7c77ff18e07182931ad8578f7
標籤之前插入一個標籤
所以下面對我有用
type xmlResponse struct { Fields []byte `xml:",innerxml"` } func isXMLStringValid(str string) bool { // ref https://stackoverflow.com/a/62869933 decoder := xml.NewDecoder(strings.NewReader(str)) for { err := decoder.Decode(new(interface{})) if err != nil { return err == io.EOF } } } func parseRawXMLString(xmlStr string) (*xmlResponse, error) { if !isXMLStringValid(xmlStr) { return nil, errors.New(fmt.Sprintf("xml: construct: input is not valid xml: %s", xmlStr)) } var xmlResp = xmlResponse{} err := xml.Unmarshal([]byte(xmlStr), &xmlResp) if err != nil { log.Printf("xml: unmarshal: %s", err) return nil, err } return &xmlResp, nil }
以上是在 golang 中使用一些未知標籤解組 XML?的詳細內容。更多資訊請關注PHP中文網其他相關文章!