go编程之XML文件解析(第三种)

如果要解析的文档像这样:
            <ap>                                                                            //或者 <ap name="哈哈" age="28">
               <head>
                 <tr_code>420102</tr_code>
                 <corp_no>8000086484</corp_no>
               </head>
               <body>
                 <IdNb>1314714361242975</IdNb>
                 <Tp>AC01</Tp>
               </body>
            </ap>

你就可以这样来解析:

package main

import (
    "encoding/xml"                                    //这个是解析xml的包
    "fmt"
)

type Student struct {
    XMLName xml.Name `xml:"ap"`
    Name    string   `xml:"name,attr"`                //如果标签里面有  <ap name="哈哈" age="28"> 就可以这样写否则忽略Name字段
    Age     int      `xml:"age,attr"`                       //如果标签里面有  <ap name="哈哈" age="28"> 就可以这样写否则忽略Age字段
    Tr_code   []string `xml:"head>tr_code",`     //head 标签下的子标签 tr_code 字段
    Corp_no   []string `xml:"head>corp_no",`  

    IdNb   []string `xml:"body>IdNb",`                //body 标签下的子标签  ldNb 字段
    Tp   []string `xml:"body>Tp",`

}

func main() {
    str := `<?xml version="1.0" encoding="utf-8"?>      //这里面就是要解析的文档
            <ap name="哈哈" age="28">
               <head>
                 <tr_code>420102</tr_code>
                 <corp_no>8000086484</corp_no>
               </head>
               <body>
                 <IdNb>1314714361242975</IdNb>
                 <Tp>AC01</Tp>
               </body>
            </ap>`

    var s Student
    xml.Unmarshal([]byte(str), &s)
    fmt.Println(s)

    fmt.Println(s.Tr_code[0])        //420102
    fmt.Println(s.Corp_no[0])      //8000086484

    fmt.Println(s.IdNb[0])            //1314714361242975
    fmt.Println(s.Tp[0])               //AC01
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值