gpt4 book ai didi

go - 使用 golang 读取 XML

转载 作者:IT王子 更新时间:2023-10-29 01:06:36 29 4
gpt4 key购买 nike

我正在尝试使用 golang 读取 som XML。我基于这个有效的例子。 https://gist.github.com/kwmt/6135123#file-parsetvdb-go

这是我的文件:

城堡0.xml

<?xml version="1.0" encoding="UTF-8" ?>
<Channel>
<Title>test</Title>
<Description>this is a test</Description>
</Channel>

测试.go

package main

import (
"encoding/xml"
"fmt"
"io/ioutil"
"os"
)

type Query struct {
Chan Channel `xml:"Channel"`
}

type Channel struct {
title string `xml:"Title"`
desc string `xml:"Description"`
}


func (s Channel) String() string {
return fmt.Sprintf("%s - %d", s.title, s.desc)
}

func main() {
xmlFile, err := os.Open("Castle0.xml")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer xmlFile.Close()

b, _ := ioutil.ReadAll(xmlFile)

var q Query
xml.Unmarshal(b, &q)

fmt.Println(q.Chan)

}

输出: - %!d(字符串=)

有人知道我做错了什么吗? (我这样做是为了学习围棋,所以对我放轻松 :P)

最佳答案

其他包,包括encoding/jsonencoding/xml 只能看到导出的数据。所以首先你的titledesc应该是TitleDesc

其次,您在打印字符串时在 Sprintf 中使用了 %d(整数)格式。这就是您得到 %!d(string=) 的原因,这意味着“它不是一个整数,它是一个字符串!”。

第三,您的 XML 中没有查询,因此直接解码到 q.Chan

这是工作示例。 http://play.golang.org/p/l0ImL2ID-j

关于go - 使用 golang 读取 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246565/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com