gpt4 book ai didi

xml - 使用 xmlns namespace 解码 xml 文档

转载 作者:IT王子 更新时间:2023-10-29 02:23:40 26 4
gpt4 key购买 nike

我想解码一个看起来像这样的 RDF 文档:

<?xml version="1.0" encoding="WINDOWS-1252"?>
<rdf:RDF xmlns:owl = "http://www.w3.org/2002/07/owl#"
xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"

<!-- other xml element -->
</rdf:RDF>

我正在使用这种类型来解开:

type wsdlDoc struct {
XMLName xml.Name `xml:"rdf:RDF"`
Name string `xml:"grounding:hasAtomicProcessGrounding"`
}

执行此操作的代码片段:

// you should import "github.com/rogpeppe/go-charset/charset"
// and _ "github.com/rogpeppe/go-charset/data"
dec := xml.NewDecoder(file)
dec.CharsetReader = charset.NewReader
var v wsdlDoc
err = dec.Decode(&v)
if err != nil {
panic(err)
}

当我运行代码时, panic 打印出这个错误:

panic: expected element type <rdf:RDF> but have <RDF>

如何处理这种解码情况?

最佳答案

命名空间由它们的 URL 表示,并由空格与名称分隔,因此您的结构应该更像

type wsdlDoc struct {
XMLName xml.Name `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF"`
// ...
}

Playground 示例:http://play.golang.org/p/tYVm2h6cIm .

关于xml - 使用 xmlns namespace 解码 xml 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656596/

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