我尝试解析具有任意结尾的元素的xml文件
具有Array0和Array1的xml示例:
<GetPriceChangesForReseller>
<PriceContractArray0 actualtype="PriceContract">
<EndUserPrice>1990,00</EndUserPrice>
</PriceContractArray0>
<PriceContractArray1 actualtype="PriceContract">
<EndUserPrice>2290,00</EndUserPrice>
</PriceContractArray1>
</GetPriceChangesForReseller>
如何处理这种情况?
我的代码的一部分:
package main
import (
"encoding/xml"
"fmt"
"io/ioutil"
"os"
)
type GetPriceChangesForReseller struct {
XMLName xml.Name `xml:"GetPriceChangesForReseller"`
GetPriceChangesForReseller []PriceContractArray `xml:"PriceContractArray"`
}
type PriceContractArray struct {
XMLName xml.Name `xml:"PriceContractArray"`
Price string `xml:"Price"`
func main() {
// Open our xmlFile
xmlFile, err := os.Open("GetPriceChangesForReseller.xml")
// if we os.Open returns an error then handle it
if err != nil {
fmt.Println(err)
}
提前谢谢!
答案 0 :(得分:1)
您可以使用以下结构(try it online!):
type GetPriceChangesForReseller struct {
XMLName xml.Name `xml:"GetPriceChangesForReseller"`
Items []PriceContract `xml:",any"`
}
type PriceContract struct {
Price string `xml:"EndUserPrice"`
}
应该可以。
答案 1 :(得分:0)
您可以尝试xmlquery,它易于解析和查询XML文档,而无需定义结构(如struct)。
const.bc
PriceContractArray0价格:1990,00
PriceContractArray1价格:2290,00