小编Rem*_*m's的帖子

解析GO中的Xml以在标记中带有“:”的属性

我想解析Xml文件的属性。它适用于任何“正常”属性,例如<application name="AppName">

但是,如果属性中包含“:”,我将无法检索它的值,例如 <application name:test="AppName">

这是我用来解析此代码:

package main

import "fmt"
import "encoding/xml"

type Application struct {
    Event Event `xml:"application"`
    Package   string    `xml:"package,attr"`
}

type Event struct {
    IsValid   string `xml:"test:isValid,attr"`
}

var doc = []byte(`<?xml version="1.0" encoding="utf-8" standalone="no"?>
    <application package="leNomDuPackage">
            <event test:isValid="true">
        </application>
</manifest>`)

func main() {
    application := Application{}
    xml.Unmarshal(doc, &application)

    fmt.Println("Application:  ", application)
    fmt.Println("isValid:", application.Event)
}
Run Code Online (Sandbox Code Playgroud)

您也可以在Golang游乐场找到它:[ https://play.golang.org/p/R6H80xPezhm

我想检索该isValid属性的值。

目前,我收到该错误消息,但无法解决。

结构字段标记xml:"test\:isValid,attr与reflect.StructTag.Get不兼容:结构标记值的语法错误

我也尝试了以下值

type Event struct {
    IsValid   string `xml:"test isValid,attr`
}
Run Code Online (Sandbox Code Playgroud)

type …
Run Code Online (Sandbox Code Playgroud)

xml go xml-parsing

1
推荐指数
1
解决办法
379
查看次数

标签 统计

go ×1

xml ×1

xml-parsing ×1