如何将嵌套的 XML 元素解组到数组中?

2024-01-13

我的 XML 包含预定义元素的数组,但我无法选取该数组。 XML 结构如下:

var xml_data = `<Parent>
                   <Val>Hello</Val>
                   <Children>
                      <Child><Val>Hello</Val></Child>
                      <Child><Val>Hello</Val></Child>
                      <Child><Val>Hello</Val></Child>
                   </Children>
                </Parent>`

这是完整的代码,这是游乐场链接 https://play.golang.org/p/VfHDqKILfA。运行此命令将获取 Parent.Val,但不会获取 Parent.Children。

package main

import (
    "fmt"
    "encoding/xml"
)

func main() {

    container := Parent{}
    err := xml.Unmarshal([]byte(xml_data), &container)

    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(container)  
    }
}

var xml_data = `<Parent>
                   <Val>Hello</Val>
                   <Children>
                      <Child><Val>Hello</Val></Child>
                      <Child><Val>Hello</Val></Child>
                      <Child><Val>Hello</Val></Child>
                   </Children>
                </Parent>`

type Parent struct {
    Val string
    Children []Child
}

type Child struct {
    Val string
}

编辑:我稍微简化了问题here https://play.golang.org/p/JkaA79p1-W。基本上我无法解组任何数组,而不仅仅是预定义结构的数组。以下是更新后的工作代码。在该示例中,只有一项最终出现在容器界面中。

func main() {

    container := []Child{}
    err := xml.Unmarshal([]byte(xml_data), &container)

    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(container)  
    }

    /* 
        ONLY ONE CHILD ITEM GETS PICKED UP
    */
}

var xml_data = `
            <Child><Val>Hello</Val></Child>
            <Child><Val>Hello</Val></Child>
            <Child><Val>Hello</Val></Child>
        `

type Child struct {
    Val string
}

type Parent struct {
    Val string
    Children []Child  `xml:"Children>Child"`  //Just use the '>'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将嵌套的 XML 元素解组到数组中? 的相关文章

  • Golang SSL TCP套接字证书配置

    我正在创建一个 Go TCP 服务器 不是 http s 并且尝试将其配置为使用 SSL 我有一个 StartCom 免费 SSL 证书 我正在尝试使用它来完成此任务 我的服务器代码如下所示 cert err tls LoadX509Key
  • 分解 SQL 表中每一行的 XML

    我有一个表 其中包含两列 ID 和 XML 数据 我想分解每个 ID 的 XML 我在 XML 中提取单个值 并且所有 XML 的结构都相同 我只是不确定如何循环遍历表并将 XML 查询应用于每一行 我需要应用的查询如下 Select to
  • 将 Protobuf 消息持久保存到数据库

    保存使用 protobuf3 定义的数据的正确方法是什么 我使用 golang 和 Java 两者都支持 ORM 在 java 中使用 Hibernate 在 golang 中使用 gorm 这两个地方我都需要将生成的代码转换为相应的实体模
  • 数据结构格式(YAML 或其他)的往返解析保留注释,用于编写配置

    我一直在多个应用程序中使用 YAML 作为配置文件格式 一切都很顺利 除了一件事 当我的程序需要在 YAML 配置文件中写入 修改配置变量时 它会通过加载和转储整个文件来破坏格式和注释 结构 嗯 实际上 YAML 还有另一个问题 大多数用户
  • project.parent.name 和parent.name 之间的区别以及在pom.xml 中使用finalName

    对线程的研究具有显式 FinalName 的 Maven 将无法正常工作 https stackoverflow com questions 40336878 maven with an explicit finalname wont wo
  • XSLT if - 属性等于字符串

    我正在使用一个xsl if在较大的条件下执行较小的条件xsl template块 我想测试当前属性的相等性xsl template匹配的节点 以下内容不起作用
  • 非本地包中的本地导入

    我知道应该避免本地进口 但在这种情况下有特殊情况需要 这是一个私人仓库 heroku buildpack 在go get 由于服务器上缺少私钥 与绝对 URL 一起使用时会出现此阶段 现在我得到这个错误local import in non
  • 使用 jQuery 导入 XML:在服务器上运行,而不是在本地运行

    我正在编写一个读取 XML 文件然后输出数据的脚本 当它在我的网络服务器上运行时它可以完美地工作 但不能从我的本地计算机上运行 542Data xml 文件与服务器和我的计算机上的HTML页面存储在同一文件夹中 我检查了所有文件版本是否相同
  • http:多余的response.WriteHeader调用

    我有一个HandleFunc 如果成功的话 我希望 显然 能够 sent a 200回复 在回复中写一条信息性消息 但是以下代码片段 在快乐路径中执行 if fullRun w Write byte successMsg w WriteHe
  • 使用 Python Unescape _xHHHH_ XML 转义序列

    我正在使用 Python 2 x 不可协商 读取 XML 文档 由其他人创建 这些文档允许许多元素的内容通过使用转义来包含不是有效 XML 字符的字符 xHHHH 公约例如ASCII BEL 又名 U 0007 由 7 个字符序列表示u x
  • 使用指针接收器调用函数的 Go 语法

    在Go中 如果我定义一个带有指针的函数作为接收者 它是否应该只允许从指针调用该函数 为什么从值本身调用这个函数就可以 并且有同样的效果 例如 在以下程序中 m1 reset 和 m2 reset 具有相同的效果 即使 m1 是一个值而 m2
  • Golang 使用 gomail.v2 实现多个收件人

    我通过 gomail v2 发送电子邮件的唯一方法是在 for 循环中对每封电子邮件使用 Send 函数 但我需要向其他电子邮件地址显示已发送相同的电子邮件 for recipient range os Args 3 mail SetAdd
  • 需要使用 SQL 查询中的值更新 XML 字符串中的多个节点

    我有一个 SQL 存储过程局部变量 DocList 声明 DocList XML 其中包含以下 XML 数据
  • 设置元素的命名空间属性

    我正在尝试用 Java 创建一个包含以下元素的 XML 文档
  • 从 Axios 响应中解析 XML,推送到 Vue 数据数组

    在我的 Vue 应用程序中 我使用 Axios 获取 XML 文件并使用parseString将 XML 解析为 JSON 然后我需要通过result到 Vue 数据 this events My console log将解析后的 XML
  • VS 2012 语法高亮

    我有 2 台计算机运行 VS 2012 pro 但它们都没有像 VS2010 那样显示基于 XML 的文件的任何突出显示或着色 我安装的唯一快捷版工具是 SQL 2012 所以我不认为这是问题所在 其中一台计算机上从未安装过 WebMatr
  • 在本地托管 W3 XML 架构文件

    我在一家公司工作 我们有自己的 XML 语言 有自己的一组模式来验证W3 架构 https www w3 org 2009 01 xml xsd 出于业务原因 我需要在内部托管这些文件 而不是依赖于网络托管版本 我对 XML 模式缺乏经验
  • 如何使用 lxml 解析包含前缀但没有名称空间声明的 XML?

    我有一堆使用前缀但没有相应名称空间声明的 XML 文件 像这样的东西
  • USSD 接口 -> java web 应用程序通信

    请需要一些有关通过 USSD 接口进行 Java Web 应用程序通信的信息 我们需要实施这一举措 以覆盖拥有低端手机的贫困社区的目标客户群 我正在研究 USSD 作为与我们当前的 Java EE Web 应用程序进行通信的一种方式 我相信
  • 如何从 gorm 中的模型获取表名?

    是否可以获得模型的表名 我发现可以从模型结构但我不知道如何正确地做到这一点 我没有找到该结构的任何初始化 user User tableName db 对于 Gorm v2 根据https github com go gorm gorm i

随机推荐

  • 导入具有可变标头的 Excel 文件

    我有 SSIS 包 它将把 excel 文件加载到数据库中 我创建了 Excel Source 任务来将 Excel 列名称映射到数据库表列名称 并且其工作正常 在极少数情况下 我们收到带有一些空格的 Excel 文件列名称 例如 列名称是
  • pszBuffer 或类似内容中的“psz”代表什么?

    我知道这有点偏离主题 但我相信无论如何我都能在这里得到答案 什么是 psz 代表在pszBuffer或者C C 系统库中的类似变量 我看到很多变量都带有 前缀 psz 它看起来像一个图案 Thanks This is 匈牙利表示法 http
  • Android xml 形状声明中的滑稽错误

    我正在创建一个形状用作按钮背景 我正在制作一条按钮 左边的按钮在左边有圆角 右边的最后一个在右边有圆角 这非常简单 API 文档向您展示了如何做到这一点 然而 当我使用android topLeftRadius and android bo
  • 请求 JSF 页面时无限 setStatus() 循环

    您好 我已将我的配置和库升级到 hibernate 4 spring 3 1 1 richfaces 4 我在 tomcat 7 上运行 但是当我尝试打开索引页时 服务器运行一个循环 当我尝试在 ViewHandlerResponseWra
  • 如何更改 Huggingface 变压器默认缓存目录

    默认缓存目录磁盘容量不足 我需要更改默认缓存目录的配置 您可以在每次加载模型时指定缓存目录 from pretrained https huggingface co transformers main classes model html
  • Jetpack Compose Text 组件中的等宽数字

    我在 Jetpack Compose 应用程序中使用自定义字体 并且希望将特定文本组件中的数字等宽 对于标准 Android TextView 可以使用fontFeatureSetting tnum 属性 https stackoverfl
  • 在 if 条件中声明变量有什么问题?

    也许我已经生疏了 最近一直在用Python编写 为什么这不能编译 if int i f 0 没有 周围的int i f 我得到另一个更合理的错误i不是布尔值 但这就是为什么我首先想要括号 我的猜测是 使用括号将其放入表达式中 并且表达式中不
  • gvim 的类似尾巴的功能

    我想使用 gvim 来查看不断更新的日志文件 这样我总是可以看到最后更新的行 就像 unix 中的 tail 命令一样 是否可以 打开日志文件和 setlocal autoread 有一个插件 尾束 http www vim org scr
  • 如何使用 OkHttp 启用证书固定

    如何使用 OkHttp 为我的 Android Java 应用程序启用证书固定 The OkHttp 文档 http square github io okhttp 3 x okhttp okhttp3 CertificatePinner
  • 文件重命名不起作用

    我正在尝试为选定的文件名添加扩展名JFileChooser虽然我无法让它工作 这是代码 final JFileChooser fc new JFileChooser fc setFileSelectionMode JFileChooser
  • 从 JSP 调用 REST GET 服务

    我有一个动态设置应用程序页面标题的 JSP 但是 我希望能够调用基于系统用户获取用户详细信息的 REST 服务 我已经有了系统用户值 但需要调用后端服务从数据库中获取详细信息 这已经实现了 但我不知道如何设置 JSP 来执行此操作 我不想使
  • 在 Chrome 中的选择输入上使用框阴影

    我目前正在开发一个小型网站 并且我在网站上的各种元素上使用了盒子阴影效果 它似乎适用于所有应用它的元素 在 Chrome 和 Firefox 中 除了select and input 它在 Firefox 中适用于这些输入类型 但在 Chr
  • 在 Windows 中通过 pm2 执行 npm 脚本时出现问题

    我正在尝试跑步npm通过 pm2 使用自定义脚本ecosystem json as apps name Service script npm args run command 不幸的是我无法做到这一点 谁能帮助我解决这个问题 我得到如下所示
  • 更新默认的 nuget 包

    我了解如何更新解决方案中的包 但我的问题是如何更新默认包 IE 当我创建新的解决方案时 它已经是最新版本 而不必在每次启动新项目时都进行 管理解决方案包 和更新 例如 如果我创建一个新的 MVC4 项目 则正在安装 jQuery 1 7 1
  • 如何在android JellyBean 4.2.2中开发自定义状态栏

    我想开发定制的StatusBar 我知道我不是唯一有此要求的人 但还是想知道大家的意见 在 StackOverflow 上进行大量搜索后 我发现人们有 使用工具修改状态栏 但这不是我需要的 我有点在思考自己的Status发展方向 带有我自己
  • CSS 网格在 Safari 中不工作

    我试图弄清楚我正在做的事情是否有问题 或者 Safari MacOS 或 iOS 是否不支持 CSS 网格 尽管他们到处都说支持 CSS 网格 我尝试过这样的事情 ul list style type none text align cen
  • 连接数据表中两列的值

    连接数据表中两列的值两列使其成为数据表中的一列 我的数据表是 TagNumber LogNumber Combined 124 1 2 125 1 3 126 2 4 o p TagNumber 124 1 2 125 1 3 126 2
  • Bluez BLE 外设利用 ADV 数据宣传自定义特性

    是否有一个示例应用程序允许使用特定的 ADV 数据宣传自定义 UUID 和特征 Bluez 的文档较少 任何帮助表示赞赏 您拥有哪个版本的 BlueZ 对于较新版本的 BlueZ 例如 5 50 您可以从命令行使用 bluetoothctl
  • 在自己的类中使用依赖注入(而不是在组件中)?

    在组件中使用 DI 与注入效果很好 inject 或在代码隐藏中使用 inject 现在如果你想在普通类中使用 DI 如何工作呢 我在这里发现了完全相同的问题 Blazor 从 C 类调用 JavaScript https stackove
  • 如何将嵌套的 XML 元素解组到数组中?

    我的 XML 包含预定义元素的数组 但我无法选取该数组 XML 结构如下 var xml data