我正在尝试解析一个 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 结构是空的
它就像结构是空的:输出:**
犯罪嫌疑人X
相关分类