PHP速学视频免费教程(入门到精通)
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
在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) </y></y></container>`
我的实际意图 - 在结束 标签之前插入一个标签
所以下面对我有用
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免费学习笔记(深入):立即学习
在学习笔记中,你将探索golang的核心概念和高级技巧!
已抢7329个
抢已抢95407个
抢已抢14926个
抢已抢52642个
抢已抢195814个
抢已抢87480个
抢