如何从xml文件中提取特定字段?

我有一个 XML 文件,现在需要从 XML 文件中提取特定的字段并存储在 Mongo 中。如何从下面的 XML 文件中只提取名字字段用户?

<?xml version="1.0" encoding="UTF-8"?>
<users>
  <user type="admin">
    <name>Elliot</name>
    <social>
      <facebook>https://facebook.com</facebook>
    </social>
  </user>
  <user type="reader">
    <name>Fraser</name>
    <social>
      <facebook>https://facebook.com</facebook>
    </social>
  </user>
</users>
xml
dtc99987
dtc99987 Go中通用XML解析器的可能重复项
大约一年之前 回复
dsgwoh7038
dsgwoh7038 golang.org/pkg/encoding/xml
大约一年之前 回复

1个回答

package main

import (
    "encoding/xml"
    "fmt"
)

const data = `<?xml version="1.0" encoding="UTF-8"?>
<users>
  <user type="admin">
    <name>Elliot</name>
    <social>
      <facebook>https://facebook.com</facebook>
    </social>
  </user>
  <user type="reader">
    <name>Fraser</name>
    <social>
      <facebook>https://facebook.com</facebook>
    </social>
  </user>
</users>
`

type Users struct {
    Users []*User `xml:"user"`
}

type User struct {
    Name string `xml:"name"`
}

func main() {
    var users Users
    if err := xml.Unmarshal([]byte(data), &users); err != nil {
        panic(err)
    }
    for _, user := range users.Users {
        fmt.Println(user.Name)
    }
}

https://play.golang.org/p/m65Eio6xskS

dourang6858
dourang6858 我们可以为简单的xml文件创建结构。 但是如果我们有像上面这样的复杂对象。 您对此有什么建议吗?
大约一年之前 回复
duanqin7791
duanqin7791 如果我想从下面的xml代码中读取lang,di,a和b字段(标签)。 <?xml版本=“ 1.0”编码=“ utf-8”?> <人xmlns:xsi =“ http://www.w3.org/XMLSchema-instance> <lang code =“ Eng” /> <dir > <par> <di root =“ 2337” extension =“ 86756” /> <hca> <name> <a> 1234 </a> <a> 12 </a> <b> 2337 </ b> </ 名称> </ hca> </ par> </ dir> </ Person>
大约一年之前 回复
dongxiz5342
dongxiz5342 不需要。您只需要定义要提取的内容即可。
大约一年之前 回复
doumei1926
doumei1926 如果我有一个较大的xml文件。 我是否需要在GO中将整个结构定义为模型?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐