[英]Unmarshal XML with CDATA with GOLANG
我试图解组一个 XML 文件,其中包含 CDATA 字段。 首先,我构建了一个结构 voor XML 文件。 下面是一个简短的视图。 A 在结构中添加了 chardata 标记。
type Ad struct {
XMLName xml.Name `xml:"ad"`
Remark string `xml:"remark,chardata"`
}
但是当我执行 xml.Unmarshal 操作时,我得到了备注字符串。 只有它仍然包含字符串中的 <.[CDATA 和 ]]> 标记。
有没有一种很好的方法(不是strings.Replace)来删除这些标签?
您需要定义包含字符数据部分的字段,而标签中没有封闭的 XML 元素:
Remark string `xml:",chardata"`
您的代码可能需要如下所示:
type Ad struct {
XMLName xml.Name `xml:"ad"`
Remark struct {
XMLName xml.Name `xml:"remark"`
Value string `xml:",chardata"`
}
}
func main() {
in := "<ad><remark><![CDATA[some stuff]]></remark></ad>"
var ad Ad
xml.Unmarshal([]byte(in), &ad)
fmt.Printf("remark: %s", ad.Remark.Value)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.