我试图解开一个xml文件,但它找不到我的根节点。
snapshot
,这使我无法解开其余的文件。
我打电话来
parser.go
从
main.go
,以及
Validate
功能。
鹦鹉围棋
type Parser struct {
file *ConfigXML
filepath string
}
//Load the file
func (parser *Parser) Load() error {
b, err := helpers.LoadFile(parser.filepath)
if err != nil {
return err
}
parser.file = nil
xml.Unmarshal(b, &parser.file)
return nil
}
func (parser *Parser) Validate() error {
if len(parser.file.snapshot) == 0 {
return fmt.Errorf("node snapshot does not exist")
}
return nil
}
当我的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>
我创建的结构用于解组到:
type ConfigXML struct {
snapshot []Snapshot
FileName string
}
// Snapshot is root <snapshot>
type Snapshot struct {
ENBEquipment []ENBEquipment
}
// ENBEquipment subtag of <snapshot> -> <ENBEquipment>
type ENBEquipment struct {
ID string `xml:"id,attr"`
DeviceName string `xml:"id,attr"`
SoftwareVersion string `xml:"version,attr"`
ElementType string `xml:"model,attr"`
Enb []Enb
}
但是当我试图和
go run main.go
我得到:
ERRO[2018-06-12 09:45:34] parsing failed error="node snapshot does not exist" filename=/tmp/datain/xyz/123/agg/233443234543.xml
如果我排除了
快照
,文件解组正常。为什么找不到节点?