Go 转到找不到已解除编组的XML节点

Go 转到找不到已解除编组的XML节点,go,Go,我试图解组一个XML文件,但它找不到我的根节点快照,这使我无法解组文件的其余部分 我正在从main.go调用parser.go,以及Validate函数 语法分析器 虽然我的XML文件很大,但我将发布一个片段: <?xml version='1.0' encoding='UTF-8'?> <snapshot> <ENBEquipment id="233443234543" model="XYZ" version="LR_16_02_L"> <

我试图解组一个XML文件,但它找不到我的根节点
快照
,这使我无法解组文件的其余部分

我正在从
main.go
调用
parser.go
,以及
Validate
函数

语法分析器

虽然我的XML文件很大,但我将发布一个片段:

<?xml version='1.0' encoding='UTF-8'?>
 <snapshot>
  <ENBEquipment id="233443234543" model="XYZ" version="LR_16_02_L">
   <attributes>
    <administrativeState>unlocked</administrativeState>
   </attributes>
  </ENBEquipment>
 </snapshot>

如果我对
快照
进行验证,则文件解组就可以了。为什么找不到节点?

尝试导出
快照
,并添加一个结构标记来指示名称

xml.Unmarshal
使用反射填充结构。因此,需要导出结构的元素

type ConfigXML struct {
    Snapshot []Snapshot `xml:"snapshot"`
    FileName string
}

有关
xml.Unmarshal
工作原理的更多信息,请参见(搜索“导出”并查看示例)。

尝试导出
快照
,并添加结构标记以指示名称

xml.Unmarshal
使用反射填充结构。因此,需要导出结构的元素

type ConfigXML struct {
    Snapshot []Snapshot `xml:"snapshot"`
    FileName string
}

有关
xml.Unmarshal
如何工作的更多信息,请参见(搜索“导出”并查看示例)。

使用调试断点或
fmt.Println()对
parser.file
使用时,您会看到什么?完全公开,我仍在学习Go。我想把
Println()
@DerekAlso放在什么地方,你真的应该捕获并处理
xml.Unmarshal()
返回的潜在错误。另外,请添加
ConfigXML
类型的定义
ConfigXML
类型在那里(格式有输入错误)@哥斯拉74,你还在这个问题上遇到麻烦吗?当使用调试断点或
parser.file
fmt.Println()
时,你看到了什么?完全公开,我还在学习围棋。我想把
Println()
@DerekAlso放在什么地方,你真的应该捕获并处理
xml.Unmarshal()
返回的潜在错误。另外,请添加
ConfigXML
类型的定义
ConfigXML
类型在那里(格式有输入错误)@哥斯拉74,你还在这个问题上遇到麻烦吗?
ERRO[2018-06-12 09:45:34] parsing failed    error="node snapshot does not exist" filename=/tmp/datain/xyz/123/agg/233443234543.xml
type ConfigXML struct {
    Snapshot []Snapshot `xml:"snapshot"`
    FileName string
}