go 用结构解析XML

结构定义如下,在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"`
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值