go 用结构解析XML

logsharp · · 1961 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

结构定义如下,在tag中写明在xml中的映射关系。可以是子节点,也可以是属性,还可以是chardata。当然,结构的成员必须是大写字母打头的,对外可见。多层节点可以用大于号连接,如“onentry>action”。用chardata时,tag为`xml:”,chardata”`。

// state machine for unmarshal json
type stateMachine struct {
    Defaultstate bool    `xml:"defaultstate,attr"`
    Initialstate string  `xml:"initialstate,attr"`
    Timeoutstate string  `xml:"timeoutstate,attr"`
    States []state       `xml:"state"`
}

// state for unmarshal json
type state struct {
    Id string            `xml:"id,attr"`
    Timeout float64      `xml:"timeout,attr"`
    Onentry []action     `xml:"onentry"`
    Onexit []action      `xml:"onexit"`
    Transitions []transition    `xml:"transition"`
}

// action for unmarshal json
type action struct {
    Name string          `xml:"name,attr"`
    Paras []Any
    ParasXML []string    `xml:"para"`    // for xml   
}

// transition for unmarshal json
type transition struct {
    Event string         `xml:"event,attr"`
    Cond string          `xml:"cond,attr"`
    Target string        `xml:"target,attr"`
}

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:logsharp

查看原文:go 用结构解析XML

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

1961 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传