gpt4 book ai didi

xml - 如何使用单个标签解析XML响应

转载 作者:行者123 更新时间:2023-12-01 22:03:41 25 4
gpt4 key购买 nike

这是我的XML回应

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">{"journalseq":"7002924","statuscode":"0002","statusdesc":"Date placed : Invalid Date","msgsockheader":["data","data"],"msgmwheader":["data","data"],"msgmbheader":["data","data"],"msgmbmessage":["data","data"]}</string>
如上所示,它只有一个带有struct的标签。我已经使结构可以这样解析:
type Data struct {
xml.Name `xml:"string"`
}

type DoMBASEHoldAmountResult struct {
XMLName xml.Name
Data Data
}

var soapEnvelope DoMBASEHoldAmountResult

// parse for hold response
xml.Unmarshal(input, &soapEnvelope)

但是soapEnvelope里面什么也没有。我在stackoverflow中找不到任何答案,而我所能找到的就是XML上有很多标签时。像这样如何解码XML?此外,我该如何获取一些数据来做出回应?假设我只想将journalSeq和msgsockheader数组中的一个数据作为响应,我是否仍然必须解析所有内容,将其放入行中,然后从该结构中选择我需要的每个值?

最佳答案

您需要确保根结构的(DoMBASEHoldAmountResult)xmlname与xml的根元素名称匹配。要解码与具有xml.Name字段的结构匹配的元素的内容,可以使用[]bytestring字段以及innerxml标记选项。

type DoMBASEHoldAmountResult struct {
XMLName xml.Name `xml:"string"`
String string `xml:",innerxml"`
}

var soapEnvelope DoMBASEHoldAmountResult

// parse for hold response
if err := xml.Unmarshal(input, &soapEnvelope); err != nil {
panic(err)
}

fmt.Println(soapEnvelope.String)
https://play.golang.org/p/l4Coz9habxa

关于xml - 如何使用单个标签解析XML响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63258825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com