我正在尝试解析一个 xml:


附上 xml,因为这里太长了https://drive.google.com/file/d/1CPleC1gBAR6n7lcyiR_zVMEjkowo3gUU/view?usp=sharing


type L1CProduct struct {

    XMLName xml.Name `xml:"n1:Level-1C_User_Product"`

    N1GeneralInfo N1GeneralInfo `xml:"n1:General_Info"`

}


type N1GeneralInfo struct {

    XMLName xml.Name `xml:"n1:General_Info"`

    ProductInfo ProductInfo `xml:"Product_Info"`

    SpectralInformationList SpectralInformationList `xml:"Product_Image_Characteristic>Spectral_Information_List"`

}


type SpectralInformationList struct {

    XMLName xml.Name `xml:"Spectral_Information_List"`

    SpectralInformation []SpectralInformation `xml:"Spectral_Information"`

}


type SpectralInformation struct {

    XMLName xml.Name `xml:"Spectral_Information"`

    BandId string `xml:"bandId,attr"`

    PhysicalBand string `xml:"physicalBand,attr"`

}


type ProductInfo struct{

    XMLName xml.Name `xml:"Product_Info"`

    ProductStartTime string `xml:"PRODUCT_START_TIME"`

    GenerationTime string `xml:"GENERATION_TIME"`

    ProductUri string `xml:"PRODUCT_URI"`


}


func parseXml() {

    // Open our xmlFile


    // xmlPath := inProcessPath + "/MTD_MSIL1C.xml"

    xmlPath := "/home/htc/Lizer/backend/InProcessResults/MTD_MSIL1C.xml"

    xmlFile, err := os.Open(xmlPath)

    // if we os.Open returns an error then handle it

    if err != nil {

        fmt.Println(err)

    }


    fmt.Println("Successfully Opened " + xmlPath)

    // defer the closing of our xmlFile so that we can parse it later on

    defer xmlFile.Close()


    // read our opened xmlFile as a byte array.

    byteValue, _ := ioutil.ReadAll(xmlFile)

    fmt.Printf("\nData: %s", byteValue)

    // we initialize our Users array

    var users L1CProduct

    // we unmarshal our byteArray which contains our

    // xmlFiles content into 'users' which we defined above

    xml.Unmarshal(byteValue, &users)

    fmt.Println(users.N1GeneralInfo.ProductInfo.ProductStartTime + "º")

    println(users.N1GeneralInfo.SpectralInformationList.SpectralInformation[1].BandId)

}

但是当文件被正确读取时,mi xml 结构是空的

它就像结构是空的:输出:**