当前位置: 首页 > 面试题库 >

去xml解析“没看到”任何字段

利俊迈
2023-03-14
问题内容

我必须缺少一些确实显而易见的东西……我尝试ExampleUnmarshal()按照此处的示例来解析一个简单的XML文件:http
:
//golang.org/src/pkg/encoding/xml/example_test.go

正如您将在底部看到的那样,没有映射任何属性或子元素-方向-
元帅或反元帅。据我所知,这几乎与上述example_test.go中所做的事情完全相同(我唯一能看到的区别是该测试中的类型在该函数的范围内-
我尝试过,不做任何区分,并且它们使用的是子元素,而不是属性-除-
以外,id但按文档名称,attr应该可以正常工作)。

代码如下:

package main

import (
    "fmt"
    "encoding/xml"
    "io/ioutil"
)


type String struct {
    XMLName xml.Name `xml:"STRING"`
    lang  string   `xml:"lang,attr"`
    value  string   `xml:"value,attr"`
}

type Entry struct {
    XMLName xml.Name `xml:"ENTRY"`
    id      string  `xml:"id,attr"`
    strings []String 
}

type Dictionary struct {
    XMLName xml.Name `xml:"DICTIONARY"`
    thetype  string   `xml:"type,attr"`
    ignore  string   `xml:"ignore,attr"`
    entries []Entry  
}

func main() {

    dict := Dictionary{}

    b := []byte(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DICTIONARY type="multilanguage" ignore="en">
  <ENTRY id="ActionText.Description.AI_ConfigureChainer">
    <STRING lang="en" value="ActionText.Description.AI_ConfigureChainer"/>
    <STRING lang="da" value=""/>
    <STRING lang="nl" value=""/>
    <STRING lang="fi" value=""/>
  </ENTRY>
</DICTIONARY>
`)

    err := xml.Unmarshal(b, &dict)
    if err != nil { panic(err) }

    fmt.Println(dict) // prints: {{ DICTIONARY}   []}

    dict.ignore = "test"

    out, err := xml.MarshalIndent(&dict, "  ", "    ")
    fmt.Println(string(out)) // prints:   <DICTIONARY></DICTIONARY>

    // huh?

}

问题答案:

您需要导出(大写)您的结构字段。

encoding/xml Marshall功能文档:

结构的XML元素包含该结构的每个导出字段的编组元素



 类似资料:
  • 也许,我搜索了所有的互联网,但我一定错过了什么。 我根据文档配置Log4j2和Commons日志。我添加了,但其配置对应用程序输出没有影响。我看Log4j没有读这个文件。这是我的配置: pom.xml \src\main\资源\log4j2.xml 在任何类中-例如A类 应用程序具有函数,因此可以由IDE或mvn exec:java运行。 问题: 日志记录正在工作-但使用默认方式。 正如您在文件中

  • 我有这样一个XML字符串: 当我试图将字符串读入这样的对象时 我得到以下错误: 我在类中使用@JsonProperty是因为@XmlElement还有其他问题。如果我在ResultModel类中排除字段QueryResults,那么字符串的解析工作正常,看起来是正确的。我做错了什么?我对Java中XML字符串的解析非常陌生,所以我希望有一些简单的方法来解决这个问题。。。

  • 问题内容: 如何解析包含数据的XML 我们如何解析xml并获取包含在???中的数据? 问题答案: (http://www.java2s.com/Code/Java/XML/GetcharacterdataCDATAfromxmldocument.htm)

  • 我试着把XML解析成R数据帧,这个链接帮了我大忙: 如何从xml文件创建R数据帧 但我还是没有弄清楚我的问题: 下面是我的代码: 我想要的数据帧是这样的: 我被困住了,任何帮助都将非常感谢,谢谢。

  • untangle untangle 是一个简洁的用于解析 XML 文档的库。输入一个 XML 文档后,untangle 将文档的结构映射成结点和属性,并返回一个 Python 对象。 形如以下的 XML 文件: <?xml version="1.0"?> <root> <child name="child1"> </root> 可以使用以下的方法进行加载: import untangl

  • 问题内容: 我需要解析一个连续的格式良好的XML元素流,仅向其提供一个已经构造的对象。这些元素没有包含在根元素中,也没有以XML标头开头,例如,但它们都是有效的XML。 使用Java 类是行不通的,因为XML Reader希望从封闭的根元素开始解析格式良好的XML。因此,它只是读取流中的第一个元素(它被视为根元素),而在下一个元素中失败,使用典型 org.xml.sax.SAXParseExcep